全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 6418|回复: 36

[疑问] hostloc一键获取积分shell脚本

  [复制链接]
发表于 2019-5-6 12:38:38 | 显示全部楼层 |阅读模式
本帖最后由 zdszf 于 2019-5-8 18:59 编辑
  1. #!/usr/bin/env bash
  2. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
  3. export PATH
  4. # Usage:
  5. ### bash <(curl -s https://raw.githubusercontent.com/mixool/script/debian-9/hostloc.sh) ${username} ${password}

  6. # user info: change them to yours or use parameters instead.
  7. username="$1"
  8. password="$2"

  9. #
  10. UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"

  11. # workdir
  12. workdir="/root/hostloc_cookie"
  13. [[ ! -d "$workdir" ]] && mkdir $workdir

  14. function login() {
  15.   echo
  16.   echo -n $(date) 登陆...
  17.   data="mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1&fastloginfield=username&username=$username&cookietime=$(shuf -i 1234567-7654321 -n 1)&password=$password&quickforward=yes&handlekey=ls"
  18.   curl -s -H "$UA" -c $workdir/cookie_loc.txt --data "$data" "https://www.hostloc.com/member.php" | grep -o "www.hostloc.com" && echo -n $(date) 成功 || status="1"
  19.   [[ $status -eq 1 ]] && echo -n $(date) 失败 && exit 1
  20. }

  21. function credit() {
  22.   echo  
  23.   creditall=$(curl -s -H "$UA" -b $workdir/cookie_loc.txt "https://www.hostloc.com/home.php?mod=spacecp&ac=credit&op=base" | grep -oE "积分: </em>\w*" | awk -F'[>]' '{print $2}')
  24.   echo $(date) 目前积分为:$creditall
  25. }

  26. function view() {
  27.   echo  
  28.   echo -n $(date) 访问空间...
  29.   for((i = 6610; i <= 6620; i++))
  30.   do
  31.   echo -n .
  32.   curl -s -H "$UA" -b $workdir/cookie_loc.txt "https://www.hostloc.com/space-uid-$i.html" >/dev/null; sleep 10
  33.   [[ $i -eq 6620 ]] && echo
  34.   done
  35.   echo -n $(date) 完成
  36. }

  37. function main() {
  38.   login
  39.   credit
  40.   view
  41.   credit
  42.   
  43.   # clean
  44.   rm -rf $workdir

  45.   # exit
  46.   echo
  47.   echo $(date) $username Accomplished.  Thanks!
  48. }

  49. main
复制代码


运行图;
发表于 2019-5-18 17:44:53 | 显示全部楼层
jianjam 发表于 2019-5-17 22:09
这样每次访问的还是那固定的几个uid。。。

小弟不才。添加了一个随机数的功能,本来是想每次访问一个 随 ...

好吧,写了个多帐号访问随机UID,有问题微信提醒。
@zdszf 新开的多帐号的帖子写的有点乱,所以还是用的这边的格式。
参照了一下@dalaoa 的https://www.hostloc.com/thread-546267-1-1.html,可微信提醒。

可以 bash hostloc.sh username password 来使用,也可以 bash hostloc.sh accountfile 调用帐密文件。
文件的格式为“帐号(空格)密码”,一个帐号一行,如:
  1. usr1 pwd1
  2. usr2 pwd2
  3. usr3 pwd3
  4. .
  5. .
  6. .
  7. usrn pwdn
复制代码

不敢新开帖子,就在这里回复。
  1. #!/usr/bin/env bash

  2. #原作者:zdszf
  3. ##原 https://raw.githubusercontent.com/mixool/script/debian-9/hostloc.sh
  4. #
  5. #Auth:逸笙
  6. #用法1:bash hostloc.sh username password
  7. #用法2:bash hostloc.sh accountfile

  8. #微信开发者服务wxpusher,不用就留空
  9. we_no_id=""

  10. declare -A userpsw
  11. declare -A getcredit
  12. # get user info
  13. if [ $# -eq 2 ]; then
  14.   userpsw["$1"]="$2"
  15. fi
  16. if [ $# -eq 1 ]; then
  17.   if [ -s "$1" ]; then
  18.     usrarry=(`cat $1 | awk '{print $1}'`)
  19.     pswarry=(`cat $1 | awk '{print $2}'`)
  20.     for((u=0;u<${#usrarry[*]};u++))
  21.     do
  22.       userpsw["${usrarry[$u]}"]="${pswarry[$u]}"
  23.     done
  24.   else
  25.     echo 文件 $1 不存在
  26.     exit 1
  27.   fi
  28. fi

  29. # workdir
  30. workdir="/tmp"
  31. [[ ! -d "${workdir}" ]] && mkdir ${workdir}

  32. UA="Mozilla/5.0+(Windows+NT+6.2;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/74.0.3729.131+Safari/537.36"

  33. delaytime=25

  34. function login() {
  35.   echo -n $(date "+%Y-%m-%d %H:%M:%S %A") ${username} 登陆...
  36.   data="mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1&fastloginfield=username&username=$username&cookietime=$(shuf -i 1234567-7654321 -n 1)&password=$password&quickforward=yes&handlekey=ls"
  37.   curl -s -H "$UA" -c ${workdir}/${cookiefile} --data "$data" "https://www.hostloc.com/member.php" | grep -o "www.hostloc.com" && echo -n $(date "+%Y-%m-%d %H:%M:%S %A") 成功 || status="1"
  38.   [[ $status -eq 1 ]] && echo 失败 && continue
  39.   youruid=(`curl -s -H "$UA" -b ${workdir}/${cookiefile} "https://www.hostloc.com/home.php?mod=spacecp&ac=credit" | grep -oE "uid=\w*" | awk -F '[=]' '{print $2}'`)
  40.   echo "(UID为:${youruid})"
  41. }

  42. function randuid() {
  43.   newuserspace=`curl -s https://www.hostloc.com/forum.php | grep -oE "欢迎新会员: <em><a href=".*" " | awk -F'"' '{print $2}'`
  44.   maxuid=`curl -s https://www.hostloc.com/${newuserspace} | grep "空间首页" | awk -F'uid=' '{print $2}' | awk -F '&' '{print $1}'`
  45.   tmpuid=$((maxuid-200))
  46.   
  47.   startuid=0
  48.   enduid=${maxuid}
  49.   while [ $youruid -gt $startuid -a $youruid -lt $enduid ]
  50.   do
  51.     #随机数
  52.     r=`head -200 /dev/urandom | cksum | cut -f1 -d" "`
  53.     startuid=$((r%tmpuid+100))
  54.     enduid=$((startuid+100))
  55.   done

  56.   #随机间隔时间
  57.   delaytime=$((r%50+10))
  58.   #delaytime=3
  59. }

  60. function credit() {
  61.   creditall=$(curl -s -H "$UA" -b ${workdir}/${cookiefile} "https://www.hostloc.com/home.php?mod=spacecp&ac=credit&op=base" | grep -oE "积分: </em>\w*" | awk -F'[>]' '{print $2}')
  62.   echo $(date "+%Y-%m-%d %H:%M:%S %A") 目前积分为:${creditall}
  63. }

  64. function view() {
  65.   a=0
  66.   echo -n $(date "+%Y-%m-%d %H:%M:%S %A") 访问空间:
  67.   echo 从$startuid开始,间隔${delaytime}s...
  68.   for((i = $startuid; i <= $enduid; i++))
  69.   do
  70.     p=0
  71.     sleep ${delaytime}
  72.     echo -n $(date "+%Y-%m-%d %H:%M:%S %A") ${i}
  73.     curl -s -H "$UA" -b ${workdir}/${cookiefile} "https://www.hostloc.com/space-uid-$i.html" | grep -o "最近访客" >/dev/null && p=1 || echo " banlist"
  74.     if [ $p -eq 1 ]; then
  75.       ((a++))
  76.       echo -e " ok,\t$a"
  77.     fi
  78.     [[ $a -eq 10 ]] && break
  79.   done
  80.   echo $(date "+%Y-%m-%d %H:%M:%S %A") 完成
  81. }

  82. function notice() {
  83.   if [ $2 -lt 20 ]; then
  84.     data1='{"userIds":["'${we_no_id}
  85.     data1=${data1}'"],"template_id":"lpO9UoVZYGENPpuND3FIofNueSMJZs0DMiU7Bl1eg2c","data":{"first":{"value":"'
  86.     data1=${data1}'HostLoc访问空间'
  87.     data1=${data1}'","color":"#ff0000"},"keyword1":{"value":"'
  88.     data1=${data1}$2
  89.     data1=${data1}'","color":"#ff0000"},"keyword2":{"value":"'
  90.     data1=${data1}$1
  91.     data1=${data1}'","color":"#ff0000"},"keyword3":{"value":"'
  92.     data1=${data1}$(date "+%F %T %A")
  93.     data1=${data1}'","color":"#009900"},"remark":{"value":"'
  94.     remark1="不到20分。"
  95.     [ $2 -eq 0 ] && remark1="居然0分,请检查帐号状态。"
  96.     data1=${data1}${remark1}
  97.     data1=${data1}'","color":"#000099"}}}'
  98.     curl -X POST "http://wxmsg.dingliqc.com/send" -d "$data1" -H "Content-Type:application/json"
  99.     echo
  100.   fi
  101. }

  102. function main() {
  103.   echo '~START~'
  104.   for user1 in ${!userpsw[*]}
  105.   do
  106.     username=${user1}
  107.     password=${userpsw[$user1]}
  108.     cookiefile=${username}.cookie
  109.     creditall=0
  110.    
  111.     login
  112.     randuid
  113.     credit
  114.     precredit=${creditall}
  115.     view
  116.     credit
  117.     aftcredit=${creditall}
  118.     getcredit["$username"]=$((aftcredit-precredit))
  119.     [ -n "${we_no_id}" ] && notice ${username} ${getcredit[$user1]}
  120.    
  121.     # clean
  122.     rm -rf ${workdir}/${cookiefile}
  123.     # exit
  124.     echo $(date "+%Y-%m-%d %H:%M:%S %A") ${username} Accomplished.
  125.     echo
  126.     sleep ${delaytime}
  127.   done
  128.   
  129.   echo
  130.   for user1 in ${!getcredit[*]}
  131.   do
  132.     echo ${user1} 获得 ${getcredit[$user1]}
  133.   done
  134.   echo '~END~'
  135. }

  136. main
复制代码

发表于 2019-5-7 11:38:20 | 显示全部楼层
本帖最后由 逸笙 于 2019-5-7 11:47 编辑

我改了目标UID,结果有1个“禁止访问”,1个“禁止发言”,11个只拿到18分。
所以我把你代码改了下,放开循环次数,curl有“禁止”就顺延,计满10个有效就结束循环。
(不知道还有哪些情况是无效访问?)

  1. # 自定开始uid
  2. startuid=8518
  3. enduid=$((startuid+100))
复制代码

  1. function view() {
  2.   a=0
  3.   echo -n $(date) 访问空间:
  4.   echo 从$startuid开始,最多到$enduid...
  5.   for((i = $startuid; i <= $enduid; i++))
  6.   do
  7.   p=0
  8.   sleep 50
  9.   echo -n $(date) ${i} ,
  10.   curl -s -H "$UA" -b $workdir/cookie_loc.txt "https://www.hostloc.com/space-uid-$i.html" | grep "禁止" && echo ${i} 黑名单 || p=1
  11.   if [ $p -eq 1 ]; then
  12.     ((a++))
  13.     echo $a ok
  14.   fi
  15.   [[ $a -eq 10 ]] && i=$((enduid+1))
  16.   done
  17.   echo -n $(date) 完成
  18. }
复制代码

野路子代码HHHHHHH
发表于 2019-5-6 13:01:20 | 显示全部楼层
燕十三丶 发表于 2019-5-6 12:52
i ++ 设置一下  1分钟访问一个 十分钟后结束吧  不限制就和之前脚本一样 会封ip的 ...

第39行,可自行调整sleep延时秒数
发表于 2019-5-6 12:46:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2019-5-6 12:46:46 | 显示全部楼层
威武霸气 不过目前没啥需要 显示收藏了
发表于 2019-5-6 12:48:03 | 显示全部楼层
先收藏了再说
发表于 2019-5-6 12:50:08 来自手机 | 显示全部楼层
本帖最后由 939163156 于 2019-5-6 12:55 编辑

收藏了,楼主威武!
发表于 2019-5-6 12:52:55 | 显示全部楼层
i ++ 设置一下  1分钟访问一个 十分钟后结束吧  不限制就和之前脚本一样 会封ip的
发表于 2019-5-6 12:57:38 | 显示全部楼层
马克 可以不用手动了
 楼主| 发表于 2019-5-6 13:03:07 | 显示全部楼层
thymol 发表于 2019-5-6 12:46
现在防CC。会封IP。。。一会儿就疯了

那就把sleep 3 改为  300
发表于 2019-5-6 13:09:54 来自手机 | 显示全部楼层
插个眼,感谢大佬分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-23 15:48 , Processed in 0.063291 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表