登录+模拟签到
来源:互联网 发布:mysql 触发器 if 编辑:程序博客网 时间:2024/04/30 12:32
<?php
include 'Snoopy/Snoopy.class.php';
set_time_limit(0);
date_default_timezone_set ('Asia/Shanghai');
$usr = trim($_REQUEST['usr']);
$pwd = trim($_REQUEST['pwd']);
@$isjq = trim($_REQUEST['isjq']);
define('BBS_URL', "http://qqtz.com"); //论坛地址
define('LOGIN_PATH', "/login.php?"); //登录路径
define('QD_PATH', '/hack.php?H_name=qiandao');//签到路径
define('USER_NAME', $usr); //用户名
define('USER_PWD', $pwd); //用户密码
define('FROM_IP', '119.75.218.45'); //模拟的ip(为空则不模拟)
define('IS_JQUERY', $isjq); //JQ获取数据
function login($snoopy){
$retval = true;
$submit_url = BBS_URL.LOGIN_PATH;
//登录所需表单
$submit_vars["cktime"] = "31536000";
$submit_vars["hideid"] = "0";
$submit_vars["lgt"] = "0";
$submit_vars["jumpurl"] = BBS_URL.QD_PATH;
$submit_vars["step"] = "2";
$submit_vars["forward"] = "";
$submit_vars["pwuser"] = USER_NAME;
$submit_vars["pwpwd"] = USER_PWD;
$submit_vars["submit"] = "登 录";
//伪装成浏览器访问
//$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装sessionid
$snoopy->agent = $_SERVER['HTTP_USER_AGENT']; //伪装浏览器
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
if(trim(FROM_IP) != ''){
$snoopy->rawheaders["X_FORWARDED_FOR"] = FROM_IP; //伪装ip
}
//提交表单
$retval = $snoopy->submit($submit_url,$submit_vars);
$qiandao_page = $snoopy->results; //获取签到页面内容
$snoopy->setcookies();
preg_match('|<input type="hidden" name="qdkey" value="([\d]{0,})" />|is',$qiandao_page,$m);
$qdkey = $m[1];if($qdkey==''){echo '请刷新并重新登陆!';}
return $qdkey;
}
function sign_in($snoopy,$qdkey){
$retval = true;
$xinqing = array('kx','ng','ym','wl','nu','ch','fd','yl','shuai');
$qdxq = $xinqing[array_rand($xinqing,1)];
//签到部分
$qiandao_url = BBS_URL.QD_PATH;
//伪装成浏览器访问
//$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装sessionid
$snoopy->agent = $_SERVER['HTTP_USER_AGENT']; //伪装浏览器
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
if(trim(FROM_IP) != ''){
$snoopy->rawheaders["X_FORWARDED_FOR"] = FROM_IP; //伪装ip
}
//签到表单
$qiandao_vars['action'] = 'qiandao';
$qiandao_vars['qdkey'] = $qdkey; //签到密钥
$qiandao_vars['qdxq'] = $qdxq; //签到心情
$qiandao_vars['submit'] = '开始签到';
$retval = $snoopy->submit($qiandao_url,$qiandao_vars);
$qd_result = $snoopy->results;
$pattern_2 = '|<center><br /><br /><br />([^<&>]{0,})<br />|is';
$pattern = '|<div[^<^>]{0,}>\s*<a[^<^>]{0,}>.*?</a></a>.*?<br />\s*(.*?)<br /><a href="hack.php?H_name=qiandao">|is';
if(preg_match($pattern,$qd_result)){
preg_match($pattern,$qd_result,$m);
$out_result = $m[1];
}else{
preg_match($pattern_2,$qd_result,$m);
$out_result = $m[1];
}
return $out_result;
//return $retval;
}
function lets_sign($snoopy){
$qdkey = login($snoopy);
echo '::'.$qdkey.'::';
sleep(2);
$out_result = sign_in($snoopy,$qdkey);
return $out_result;
}
$snoopy = new Snoopy;
$out_result = lets_sign($snoopy);
function qiandao(){
$snoopy = new Snoopy;
$submit_url = BBS_URL.LOGIN_PATH;
//登录所需表单
$submit_vars["cktime"] = "31536000";
$submit_vars["hideid"] = "0";
$submit_vars["lgt"] = "0";
$submit_vars["jumpurl"] = BBS_URL.QD_PATH;
$submit_vars["step"] = "2";
$submit_vars["forward"] = "";
$submit_vars["pwuser"] = USER_NAME;
$submit_vars["pwpwd"] = USER_PWD;
$submit_vars["submit"] = "登 录";
//伪装成浏览器访问
$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装sessionid
$snoopy->agent = $_SERVER['HTTP_USER_AGENT']; //伪装浏览器
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
if(trim(FROM_IP) != ''){
$snoopy->rawheaders["X_FORWARDED_FOR"] = FROM_IP; //伪装ip
}
//提交表单
$snoopy->submit($submit_url,$submit_vars);
$snoopy->setcookies();
$qiandao_page = $snoopy->results; //获取签到页面内容
$cookie = $_SERVER["HTTP_COOKIE"];
preg_match('|<input type="hidden" name="qdkey" value="([\d]{0,})" />|is',$qiandao_page,$m);
$qdkey = $m[1];
echo $qdkey;
$xinqing = array('kx','ng','ym','wl','nu','ch','fd','yl','shuai');
$qdxq = $xinqing[array_rand($xinqing,1)];
//签到部分
$qiandao_url = BBS_URL.QD_PATH;
$snoopy->rawheaders["COOKIE"]= $cookie;
//$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装sessionid
$snoopy->agent = $_SERVER['HTTP_USER_AGENT'];
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
if(trim(FROM_IP) != ''){
$snoopy->rawheaders["X_FORWARDED_FOR"] = FROM_IP; //伪装ip
}
//签到表单
$qiandao_vars['action'] = 'qiandao';
$qiandao_vars['qdkey'] = $qdkey; //签到密钥
$qiandao_vars['qdxq'] = $qdxq; //签到心情
$qiandao_vars['submit'] = '开始签到';
$isok = $snoopy->submit($qiandao_url,$qiandao_vars);
$qd_result = $snoopy->results;
//echo '>>>>>>>>>'.$qd_result.'<<<<<<<<<<<<';
//'|<center><br /><br /><br />([^<&>]{0,})<br />|is'
$pattern_2 = '|<center><br /><br /><br />([^<&>]{0,})<br />|is';
$pattern = '|<div[^<^>]{0,}>\s*<a[^<^>]{0,}>.*?</a></a>.*?<br />\s*(.*?)<br /><a href="hack.php?H_name=qiandao">|is';
if(preg_match($pattern,$qd_result)){
preg_match($pattern,$qd_result,$m);
$out_result = $m[1];
}else{
preg_match($pattern_2,$qd_result,$m);
$out_result = $m[1];
return $out_result;
}
sleep(1);
}
//$out_result = qiandao();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>签到脚本 - <?php echo BBS_URL;?></title>
<style>
body {
background: white;
color: #AFCE50;
font: 9pt/200% Verdana;
}
</style>
<script type="text/javascript">
$(document).ready(function () {
window.setTimeout(function () {
$.get("qqtz.php", { isjq: "yes", usr: "<?php echo USER_NAME;?>", pwd: "<?php echo USER_PWD;?>" },
function(data){
//alert(data);
$('body').html(data);
});
}, 30*1000);
});
</script>
<div style="width:400px;margin:50px auto;text-align:center;">
<?php if(trim(USER_NAME) == '' && trim(USER_PWD) == ''){?>
<?php echo '<div><p style="text-align:left;"><font color=green>请登陆先</font></p><form method="post" action=""><p><input type="text" name="usr"/></p><p><input type="password" name="pwd"/></p><p><input type="submit" value="go" /></p></form></div>';?>
<?php }?>
<div><p><font color="blue"><?php echo date("H:i:s");?></font></p></div>
<span id="result" style="border:1px dotted #ddd;"><?php echo $out_result; ?></span>
<div id="yao_tips"><p><font color="red">使用说明:使用论坛帐号密码登陆。请勿关闭浏览器!</font></p></div>
</div>
</html>
Snoopy 模拟登陆并后续操作的例子| php小程序实现嘀咕自动签到 >>
Jul 23, 2011 by Mr。薬小耀 / 0 Comments
这几天接触了一下PHP一个扩展类----Snoopy,
感觉比curl方便一些,很多功能都集成好了,
不用再自己写很多setopt,嘿嘿。
因为最近在一个论坛逛,就顺便拿这个论坛来练手吧。
首先是最基本的模拟登陆。
打开论坛的登陆页面,打开源代码,
看看登陆的表单都有一些什么参数,然后一一定义出来,
这是个PW的论坛:
$submit_url = BBS_URL.LOGIN_PATH; //登录地址,之前已经定义好的
$submit_vars["cktime"] = "31536000"; //cookie的保存时间
$submit_vars["hideid"] = "0";
$submit_vars["lgt"] = "0";
$submit_vars["jumpurl"] = BBS_URL.QD_PATH; //登陆以后跳转的地址,这里我定义的是签到地址
$submit_vars["step"] = "2";
$submit_vars["forward"] = "";
$submit_vars["pwuser"] = USER_NAME; //用户名
$submit_vars["pwpwd"] = USER_PWD; //用户密码
$submit_vars["submit"] = "登 录"; //登陆按钮
为了避免一些麻烦,我模拟一下浏览器访问:
$snoopy->cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7';//伪装sessionid
$snoopy->agent = $_SERVER['HTTP_USER_AGENT']; //伪装浏览器
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
if(trim(FROM_IP) != ''){ //如果需要的话,还可以伪装一下访问来源IP
$snoopy->rawheaders["X_FORWARDED_FOR"] = FROM_IP;//伪装ip
}
剩下的就是提交了:
$retval = $snoopy->submit($submit_url,$submit_vars);//定义了一个变量来判断是否提交成功
$qiandao_page = $snoopy->results; //获取签到页面内容
$snoopy->setcookies();//这个比较重要吧,为了后续工作的展开必须要保持cookies
到这里,登陆就完成了,我的想法是做一个每小时自动去签到的小玩意儿,
于是有下面的东西:
//签到部分
$qiandao_url = BBS_URL.QD_PATH; //伪装成浏览器访问
$snoopy->agent = $_SERVER['HTTP_USER_AGENT']; //伪装浏览器
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息
if(trim(FROM_IP) != ''){
$snoopy->rawheaders["X_FORWARDED_FOR"] = FROM_IP; //伪装ip
}
//签到表单
$qiandao_vars['action'] = 'qiandao'; $qiandao_vars['qdkey'] = $qdkey; //签到密钥
$qiandao_vars['qdxq'] = $qdxq; //签到心情
$qiandao_vars['submit'] = '开始签到';
$retval = $snoopy->submit($qiandao_url,$qiandao_vars);
$qd_result = $snoopy->results;
然后在页面用一个JS来定时访问这个小脚本就可以了~
后来又看上了论坛的那个钓鱼插件,
继而又依瓢画葫的做出了自动钓鱼的小脚本,
可惜杯具啊~钓鱼真不是人干的,
把我的论坛币都输光了~~呜呜呜~
完整代码下载 --> 下载地址
- 登录+模拟签到
- 模拟登录51cto,签到,获取信息数
- java模拟用户登录(实现自动签到)-aspx
- HDU6106 Classes 模拟|签到
- java模拟登录qq网站,实现一键签到等等功能
- 请登录游戏大厅进行签到
- Python爬虫实现自动登录、签到
- axure模拟点击签到图标点亮
- Golang 实践之 Discuz 论坛模拟签到
- 高中OJ3783. 【NOIP2014模拟8.19】签到题
- HDU6095 Rikka with Competition 模拟|签到
- Aizu1367 Rearranging a Sequence 模拟|签到
- Aizu 1369 Distribution Center 模拟|签到
- Gym 100641A Continued Fractions 模拟|签到
- HDU6130 Kolakoski 模拟|找规律|签到
- 模拟登录
- 模拟登录
- 模拟登录
- 用 OData Service 访问 US Bank
- 指针及数组内存变化详解1
- python笔记《7》
- 在Windows 7上安装Microsoft Loopback Adapter(微软环回网卡)
- bupt(topsort)
- 登录+模拟签到
- emacs 环境配置过程
- android 滤镜
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 简单末,range,好吧,记一下
- 电路板与计算机串口连接规律
- Android自定义ScrollView实现反弹效果
- 英文字母编码问题
- An incomplete list of C++ compilers