论坛现在对签到给很高的积分,说人话就是签到可以快速升级,所以研究了一下签到原理,写了一个 php 自动签到脚本.
要求如下:
引用1.获取论坛 cookie
✌🎠🍒♑🐉
2.一个能运行 php 文件的服务器 (国内的服务器太贵了...国外的便宜的一逼,后面会介绍一下)
一、如何获取论坛 cookie ?
首先用你的账号登陆论坛,(我演示用的是谷歌浏览器,其他浏览器类似)然后按 F12 ,依次点击
Application >>
Cookie ,就可以看见我们需要的内容了.
👮♂️🥾🔒😄💅
找到 9jnf_acf7_auth 和 9jnf_acf7_saltkey , 复制整行下来,等下会用到.
discuz 论坛 cookie 默认 30 天失效,只要你不点退出,30 天内 cookie 都是有效的。
二、把 php 放到服务器上🧑🎤👚🦯🥰✌
至于怎么放,我就不详细教了,毕竟这个教程不适合特别菜的菜鸟
全屏查看- <?php
- header("Content-type:text/html;charset=utf-8");
👍🚘🥚🐙
- // 设定cookie和网址
- $cookie = '9jnf_acf7_saltkey=CDBGrzzq;9jnf_acf7_auth=69999p5ZcVVYLnmi11OuuOQ50rKq2PwGv%2lJYC2cKeTyIz7iM4dbMVqrf8S9ePNK8Juyw0VLPyAdgnO19BViu2';
- // 获取formhash
👆⛪🍒➡🐠
- $URL = "https://www.guhei.net/forum.php";
- $str = loadcode($cookie,$URL);
- preg_match_all('/name="formhash" value="(\w+)"/',$str,$m);
- // 设定POST信息
🤳🛑🍌♾🐤
- $data = 'formhash='.$m[1][0].'&qdxq=kx&qdmode=1&todaysay=我是第一个~&fastreply=0';
- $URL = 'https://www.guhei.net/plugin.php?id=dsu_paulsign:sign&operation=qiandao&infloat=1&inajax=1';
- $Referer = 'https://www.guhei.net/plugin.php?id=dsu_paulsign:sign';
- // 模拟签到并输出回执
👃🎠🎂🅱🐴 - print_r(vpost($URL,$data,$cookie,$Referer));
- function loadcode($cookie,$URL)
- {
- $ch = curl_init();//初始化curl
- curl_setopt($ch,CURLOPT_COOKIE,$cookie); //设置cookie
🤞🎠🍊✡🐻 - curl_setopt($ch,CURLOPT_URL,$URL);//抓取指定网页
- curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
- return curl_exec($ch);//运行curl
- curl_close($ch);
👄🚈🌶✡🪰 - }
- function vpost($URL,$data,$cookie,$Referer){ // 模拟提交数据函数
- $curl = curl_init(); // 启动一个CURL会话
- curl_setopt($curl, CURLOPT_URL, $URL); // 要访问的地址
- curl_setopt($curl, CURLOPT_COOKIE, $cookie);
🥷👞📷☠
- curl_setopt($curl, CURLOPT_REFERER,$Referer);// 设置Referer
- curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
- // curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
✍🌞🍇🈴🐤 - $tmpInfo = curl_exec($curl); // 执行操作
- if (curl_errno($curl)) {
- echo 'Errno'.curl_error($curl);//捕抓异常
- }
- curl_close($curl); // 关闭CURL会话
🦴⛵🍼❓🐴 - return $tmpInfo; // 返回数据
- }
- ?>
复制代码
需要修改的地方有
👍🌧🍌®🐺1. $cookie=""; 把你之前复制的 cookie 放到双引号之内,9jnf_acf7_auth 和 值用 = 号连接起来,参考上面的代码。
2. $data &qdxq=kx&qdmode=1&todaysay=我是第一个~&fastreply=0
qdxq = //签到表情
qdmode = 1 //今日我想说
👗🪟🙄✌
todaysay = //说的内容
三、测试运行
使用命令行 php dsu12.php //你的 php 放哪就写哪
👦🥾🪝💀👄
四、添加定时任务
🥷🎩🦯💀👏
crontab -e
0 0 * * * /usr/local/php7/bin/php /web/wp/dsu12.php > /dev/null 2>&1
美滋滋,每天 0 点 0 分 自动签到
👊⛴🍧☯🐉
五、vps介绍
国外一般推荐 【搬瓦工VPS】、【Vultr】支持支付宝。最低套餐 50 - 200 人民币/年,买来当个梯子顺便做自动签到服务器。
👦👠📠😰🤛
补充内容 (2020-1-5 12:24):
cookie 我都用了快半年了,还没失效。。