一个非常实用的带验证码的模拟登陆实例

来源:互联网 发布:mac磁盘权限修复 编辑:程序博客网 时间:2024/05/01 12:05
01/**
02 * 模拟登录
03 * Design by maben
04 * www.maben.com.cn
05 */
06 
07//初始化变量
08$cookie_file "tmp.cookie";
09$login_url "http://xxx.com/logon.php";
10$verify_code_url "http://xxx.com/verifyCode.php";
11 
12echo "正在获取COOKIE...\n";
13$curlj = curl_init();
14$timeout = 5;
15curl_setopt($curl, CURLOPT_URL, $login_url);
16curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
17curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
18curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //获取COOKIE并存储
19$contents = curl_exec($curl);
20curl_close($curl);
21 
22echo "COOKIE获取完成,正在取验证码...\n";
23//取出验证码
24$curl = curl_init();
25curl_setopt($curl, CURLOPT_URL, $verify_code_url);
26curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
27curl_setopt($curl, CURLOPT_HEADER, 0);
28curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
29$img = curl_exec($curl);
30curl_close($curl);
31 
32$fp fopen("verifyCode.jpg","w");
33fwrite($fp,$img);
34fclose($fp);
35echo "验证码取出完成,正在休眠,20秒内请把验证码填入code.txt并保存\n";
36//停止运行20秒
37sleep(20);
38 
39echo "休眠完成,开始取验证码...\n";
40$code file_get_contents("code.txt");
41echo "验证码成功取出:$code\n";
42echo "正在准备模拟登录...\n";
43 
44$post "username=maben&pwd=hahahaha&verifycode=$code";
45$curl = curl_init();
46curl_setopt($curl, CURLOPT_URL, $url);
47curl_setopt($curl, CURLOPT_HEADER, false);
48curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
49curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
50curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
51$result=curl_exec($curl);
52curl_close($curl);
53 
54//这一块根据自己抓包获取到的网站上的数据来做判断
55if(substr_count($result,"登录成功")){
56    echo "登录成功\n";
57}else{
58    echo "登录失败\n";
59    exit;
60}
61 
62//啦啦啦,开始做你想做的事吧。。。。。
0 0
原创粉丝点击