动态IP家宽vps被墙自动换IP脚本

实用教程 admin 2年前 (2023-05-03) 1559次浏览 0个评论

介绍

有时我们使用香港或者台湾的动态IP家宽vps,大部分商家都是支持api自助更换IP的,目前大部分的做法是设置定时任务,固定一个时间更换IP,或者是我们都是发现了IP被墙,然后手动去执行更换IP的命令,但是小白发现这样还是不够智能,如果我们能实现实时检测IP是否被墙,如果被墙了就更换IP,岂不美哉?

检测IP是否被墙脚本

我们先来写一个检测IP是否被墙的脚本,小白这里使用的是ping命令,脚本如下:

#!/bin/bash

# 获取IP地址
ip_address=$(curl -s ifconfig.me)

# 执行ping命令,并检查结果
if ping -c 5 -W 2 -i 0.2 www.itdog.cn | grep "100% packet loss" > /dev/null
then
    echo "当前IP已经被封锁"
else
    echo "当前IP未被封锁"
fi

这里稍微说明下,这个脚本使用curl命令获取当前主机的公网IP地址,并将其保存在变量ip_address中。然后,它使用ping命令来ping这个网站www.itdog.cn,并在5次ping尝试中每次ping等待2秒钟。如果ping命令返回的结果中包含“100% packet loss”等错误,则说明您的IP可能被封锁了。否则,脚本将输出“当前IP未被封锁”。

小白这里采用的itdog,你可以采用其他任意网站或者境内IP,但是这里有两点说明:

1.此网站的域名必须是域名ping的,如果禁ping了,回造成一直提示当前IP已被封锁。
2.此网站必须没有境外cdn节点,因为如果这个网站存在境外cdn节点,那会一直提示当前IP未被封锁。具体可通过itdog.cn查看该网站是否存在境外cdn节点。

请注意,这个脚本可能需要适当的修改,以确保它能够正常工作并符合您的要求。同时,这个方法也可能不是100%准确,并且可能会受到网络拥堵、临时封锁等因素的影响。因此,建议您结合多种方法和工具,以获得更准确的检测结果。

我们已将脚本内容保存到test.sh,来看下实际效果:

root@debian ~ # bash test.sh 
当前IP未被封锁

root@C2023 ~ # bash test.sh 
当前IP已经被封锁

配合api换IP命令

现在,假设我们的api换IP名利为:

curl http://10.10.9.6/changeip/changeip.aspx

我们将换IP的命令与上面的检测IP是否被墙命令配合起来即可,具体脚本如下:

#!/bin/bash

# 获取IP地址
ip_address=$(curl -s ifconfig.me)

# 执行ping命令,并检查结果
if ping -c 5 -W 2 -i 0.2 www.itdog.cn | grep "100% packet loss" > /dev/null
then
    echo "当前IP已经被封锁,正在尝试换IP..."
    # 执行换IP的命令
    curl http://10.10.9.6/changeip/changeip.aspx
    echo "IP已经更换完成。"
else
    echo "当前IP未被封锁"
fi

在这个脚本中,当IP被封锁时,它会输出一条信息,指示它正在尝试更换IP,并执行换IP的命令。然后,它输出另一条信息,指示IP已经更换完成。如果IP未被封锁,则仅输出一条信息,指示当前IP未被封锁。

请注意,这个脚本中的换IP的命令是针对您特定的网络环境设置的,您需要根据您的实际情况进行修改,以确保它能够正常工作。同时,这个方法也可能不是100%准确,并且可能会受到网络拥堵、临时封锁等因素的影响。因此,建议您结合多种方法和工具,以获得更准确的检测结果。

加入定时任务

如果您希望在特定的时间间隔内自动执行这个脚本,可以使用Linux系统中的定时任务工具——crontab。您可以通过编辑crontab文件来设置定时任务,让系统在指定的时间自动执行脚本。

我们将脚本保存为script.sh,记得给执行权限:chmod +x script.sh

以下是一个示例命令,用于打开crontab文件并添加定时任务:

crontab -e
然后,将以下行添加到crontab文件中,以在每小时的第5分钟执行您的脚本:
5 * * * * /bin/bash /path/to/your/script.sh >/dev/null 2>&1
如果封锁情况严重,我们可以提高脚本运行频率,比如,每隔一分钟检测一次:
*/1 * * * * /bin/bash /path/to/your/script.sh >/dev/null 2>&1 
请将/path/to/your/script.sh替换为您脚本的实际路径。

VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:动态IP家宽vps被墙自动换IP脚本
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址