最近由于某些原因,很多小伙伴的vps被x了,为了帮助大家(自己)更好地检测小鸡是否被x,写了一个脚本去定时检测并且将结果推送到微信。
脚本构思
常规检测
一般大家多数都是利用网站https://ipcheck.need.sh/ 去查询ip是否被x
接口获取
通过上图我们先获取到,ipcheck的查询接口 为 https://ipcheck.need.sh/api_v2.php?ip=你的ip
返回值分析
没被x:{"result":"success","data":{"outside_gfw":{"icmp":{"accepted":true,"alive":true},"tcp":{"accepted":true,"alive":true}},"inside_gfw":{"icmp":{"accepted":true,"alive":true},"tcp":{"accepted":true,"alive":true}},"reports":4,"total_reports":4,"processing_time":1736}}
被x的:{"result":"success","data":{"outside_gfw":{"icmp":{"accepted":true,"alive":true},"tcp":{"accepted":true,"alive":true}},"inside_gfw":{"icmp":{"accepted":true,"alive":false},"tcp":{"accepted":true,"alive":false}},"reports":4,"total_reports":4,"processing_time":1736}}
我们可以看到这里返回的是一个json数据,并且标色出有区别
脚本代码
#!/bin/bash
#按格式将ip填入iplist中
iplist=('103.99.000.000' '161.117.000.000')
#写入Server酱的秘钥
#Server酱地址http://sc.ftqq.com/3.version github账号登入即可获取秘钥,详情请看使用准则
ft_sckey="xxxxxxxxxxxxxxxxxxxxxxxxxx"
ipcheck()
{
if [ $(curl -s https://ipcheck.need.sh/api_v2.php?ip=$1 | awk -F '[:}]' '{print $21}') = true ] ;
then
echo -e "你的小鸡$1没有被x!"
else
echo -e "准备进行第二次检测"
sleep 1
ipcheck_two $1
fi
}
ipcheck_two()
{
if [ $(curl -s https://ipcheck.need.sh/api_v2.php?ip=$1 | awk -F '[:}]' '{print $21}') = true ] ;
then
echo -e "你的小鸡$1没有被x!"
else
echo -e "准备进行第三次检测"
sleep 1
ipcheck_three $1
fi
}
ipcheck_three()
{
if [ $(curl -s https://ipcheck.need.sh/api_v2.php?ip=$1 | awk -F '[:}]' '{print $21}') = true ] ;
then
echo -e "你的小鸡$1没有被x!"
else
echo -e "你的小鸡$1被x了!"
wget https://sc.ftqq.com/$ft_sckey.send?text=主人,你的小鸡鸡$1被x了! -O /dev/null >> /dev/null 2>&1
fi
}
for(( i=0;i<${#iplist[@]};i++)) do
ipcheck ${iplist[i]}
done;
使用教程
先准备一台可以正常访问ipcheck的小鸡(国内的或者是没有x的都可以)
在root目录下创建ipcheck.sh文件
复制上边的脚本源代码到,ipcheck.sh文件中
在代码的iplist中写入需要监测的小鸡ip,用引号,空格分割
然后到 方糖的官网http://sc.ftqq.com/?c=code ,使用github登录,并且在微信推送页面绑定微信用于推送消息,如下图
将获取到的sckey写入到脚本的ft_sckey处
保存脚本,并且给脚本赋予执行权限 chmod +x ipcheck.sh
如果没有问题,我们将设置一个定时任务进行定时执行脚本
#第一种方法:
使用crontab ,每小时执行一次
echo "1 */1 * * * bash /root/ip.sh" >>/var/spool/cron/root
将脚本填入到crontab 的执行计划中即可
#第二种方法:
使用宝塔linux面板,如下图
在宝塔linux面板的计划任务菜单下,我们选择任务类型是shell脚本,名称自定义,周期建议一个小时,脚本内容写上 bash /root/ipcheck.sh,点击添加任务,点击最下边的执行和日志看看是否正常即可
到此,就大功告成了。 转自:https://www.7colorblog.com/?id=76
评论 (0)