沙唐桔

Hostloc 每日自动领取20积分 PHP 脚本

脚本丢在 VPS 上,crontab 设置计划任务,每天定时执行脚本即可。(通过访问别人空间增加积分,一天最多加 10 次,一次加 2 金钱——一天最多 20 金钱)新方法可以不用 VPS,使用 GitHub Actions 自动获取 Hostloc 论坛积分。

使用 GitHub Actions 自动获取 Hostloc 论坛积分

新方法,不需要 VPS,使用 GitHub Actions 自动获取 Hostloc 论坛积分。

项目地址:xirikm / hostloc-auto-get-points

GitHub Actions 自动获取 Hostloc 论坛积分 - 使用说明

Fork「hostloc-auto-get-points」仓库,然后点击你的仓库右上角 Settings,找到 Secrets 这一项,添加两个 Secrets 环境变量。

其中 HOSTLOC_USERNAME 存放 Hostloc 帐户名,HOSTLOC_PASSWORD 存放帐户密码。支持同时添加多个帐户,数据之间用半角逗号 , 隔开即可,帐户名和帐户密码需一一对应。

设置好环境变量后点击你的仓库上方 Actions 选项,点击 I understand... 按钮确认在 Fork 的仓库上启用 GitHub Actions 。

最后在你这个 Fork 的仓库内随便改点什么(比如给 README 文件删掉或者增加几个字符)提交一下手动触发一次 GitHub Actions 就可以了 (重要!!!测试发现在 Fork 的仓库上 GitHub Actions 的定时任务不会自动执行,必须要手动触发一次后才能正常工作) 。

仓库内包含的 GitHub Actions 配置文件会在每天国际标准时间 17 点(北京时间凌晨 1 点)自动执行获取积分的脚本文件,你也可以通过 Push 操作手动触发执行(测试发现定时任务的执行可能有 5 到 10 分钟的延迟,属正常现象,耐心等待即可)。

注意: 为了实现某个链接/帐户访问出错时不中断程序继续尝试下一个,GitHub Actions 的状态将永远是“通过”(显示绿色的),请自行检查 GitHub Actions 日志 Get points 项的输出确定程序执行情况。

PHP 代码自动获取 Hostloc 论坛积分

这个方法貌似不大稳,会失效。

<?php

$username = "常阳时光";
$password = "cyhour.com";
set_time_limit(600);
$suburl = "https://www.hostloc.com/member.php?mod=logging&action=login";
$loginInfo = array(
"username" => $username,
"password" => $password,
"fastloginfield" => "username",
"quickforward" => "yes",
"handlekey" => "ls",
"loginsubmit" => true
);
$login = postData($suburl,$loginInfo);
$spaceUrl = "https://www.hostloc.com/space-uid-*.html";
for($i=233;$i<246;$i++)
{
getData(str_replace("*",$i,$spaceUrl));
}
function postData($url, $post_data)
{
$ch = curl_init ();
curl_setopt($ch , CURLOPT_POST , 1);
curl_setopt($ch , CURLOPT_HEADER , 0);
curl_setopt($ch , CURLOPT_URL , $url);
curl_setopt($ch , CURLOPT_COOKIEJAR , 'hostloc.cookie');
curl_setopt($ch , CURLOPT_POSTFIELDS , $post_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,600);
curl_setopt($ch, CURLOPT_REFERER, 'https://www.hostloc.com/');
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function getData($url)
{
$ch = curl_init ();
curl_setopt($ch, CURLOPT_HEADER , 0);
curl_setopt($ch, CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'hostloc.cookie');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,600);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}

echo "You have got 20 points at:\n";
echo $showtime=date("Y-m-d H:i:s\n");

?>

代码保存为 hostloc.php,上传到 VPS /root/ 目录。(可根据需要修改位置,不过建议放到 root 目录下,root 用户执行脚本,试过放网站根目录下,执行成功,但是积分没增加,估计是权限没设置好

crontab -e,添加任务。

44 7  * * * php /root/hostloc.php >> /root/hostloc.log 2>&1

然后重启一下 crond 服务即可。(service crond restart)

参考资料

原贴:【上元老不是梦】贴一份很久之前用的LOC刷积分PHP源码

逻辑门 - hostloc刷20积分php脚本每日自动

VPS 部落 - HostLoc签到脚本汇总,HostLoc自动定时翻牌拿好每天20金币

枫叶博客 - 利用 PHP 实现 hostloc 刷分脚本