用curl命令提交表单

Submitted by Dot on Tue, 05/31/2016 - 08:50

某VPN服务挺稳定,不过免费试用账号只能用20分钟,如果不想掏钱的话,只能一个接一个注册试用账号了。

那么,每次都要打开注册页注册么?不,幸运的是注册页并没有设验证码,那么我们可以在本地自己做一个表单,action指向对应地址,name值与注册页元素一致,type无所谓,value直接指定即可,注册页method是POST,我们也用POST。

原理弄明白了,我们还可以再懒一点么?可以,一条命令即可:


curl --data "username=dotcra&password1=1111&password2=1111&srvid=1&acceptterms=1&adduser=%200K%20" http://some_vpn/reg.php?cont=reg_user

这个命令直接发送POST请求,注册一个用户名为dotcra,密码为1111的试用账号。

我们还可以写一个shell脚本,让这件事情变得更傻瓜:


#!/bin/bash

if [ ! -n "$1" ]
then
	echo "username, please.";
	exit;
fi

if [ ! -n "$2" ]
then
	# parameters can't be assigned? anyway, we declare a variable 'passwd';
	passwd=1111;
	echo "no passwd given, set to 1111";
else 
	echo "passwd set to $2";
	passwd=$2;
fi

echo "username set to $1";

curl --data "username=$1&password1=$passwd&password2=$passwd&srvid=1&acceptterms=1&adduser=%200K%20" http://user.tover.net/reg.php?cont=store_user

运行脚本时,可以带两个参数,第一个是必须的,指定用户名,第二个参数可选,指定密码,不指定的话就用1111。

这是一个简单的curl命令应用实例。更多curl演示可以在这里找到,比man实用多了。

Tags

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.