该脚本可以检测IP的变化情况,如果IP发生变化,则自动执行IPQuality脚本,并通过Telegram Bot通知,并上传IPQuality的测试结果(以PNG图片的形式)
Github仓库
Github仓库地址:https://github.com/Z1rconium/Auto-DynamicIP
功能特点
- 多源 IP 检测:轮询多个可靠的 API(如 ip.sb, icanhazip.com 等)获取当前公网 IP,确保稳定性。
- IP 变更监控:自动记录上一次的 IP,仅在 IP 发生变化时触发后续操作。
- 自动质量检测:集成
IP.Check.Place脚本,自动进行 IP 质量评估(包含-E增强模式)。 - 生成图片报告:利用
ansilove将终端的 ANSI 输出转换为高质量的 PNG 图片。 - Telegram 通知:将变更详情(新旧 IP、时间)及生成的报告图片发送到指定的 Telegram Chat。
- 日志记录:详细记录检测过程、错误信息及发送状态到日志文件。
- 自动清理:发送成功后自动清理生成的临时图片。
依赖
除了IPQuality脚本本身需要的依赖,该脚本还需要额外的ansilove的依赖。这也是本脚本的核心依赖,用于将 ANSI 文本转换为 PNG 图片。
完成依赖如下:
curl (用于网络请求)、bash (脚本解释器)、ansilove (核心依赖:用于将 ANSI 文本转换为 PNG 图片)和grep, sed, awk (标准文本处理工具)
建议在运行脚本前将以上的依赖全部安装完成!!!
使用(详见README.md)
使用wget将脚本下载到VPS本地即可。有以下参数需要修改:
- Telegram Bot 配置
- 文件路径配置
- 配置Telegram发送信息的细节
# Telegram Bot 配置
TG_BOT_TOKEN="你的_BOT_TOKEN" # 从 @BotFather 获取
TG_CHAT_ID="你的_CHAT_ID" # 接收消息的用户 ID 或群组 ID
# 文件路径配置
IP_LOG_FILE="/root/.current_ip_log" # 用于记录当前 IP 的文件路径
IMAGE_DIR="/root" # 图片生成的目录
LOG_FILE="/var/log/ip_monitor.log" # 日志文件路径
注意:请确保脚本对配置的目录(如
/root或/var/log)拥有写入权限。如果是普通用户运行,建议修改为用户目录下的路径(例如~/ip_monitor.log)。
# 配置Telegram发送信息的细节
RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TG_BOT_TOKEN/sendPhoto" \
-F chat_id="$TG_CHAT_ID" \
-F caption="🚨 **XXXX 家宽 IP 地址已变更**\n新 IP: \`$CURRENT_IP\`\n旧 IP: \`$LAST_IP\`\n时间: $(date '+%Y-%m-%d %H:%M:%S')\n参数: \`-4 -E\`" \
-F parse_mode="Markdown" \
-F photo="@$LATEST_PNG")
如果你还不知道如何获取Telegram Bot API和Chat ID,详见下面这个教程:https://www.boyy.org/notebook/mark/141118.html
手动运行
直接运行脚本进行测试:
./monitor_ip.sh
如果是首次运行(或没有历史记录),它会记录当前 IP。如果此时再次运行且 IP 未变,脚本将静默退出。
定时任务 (Cron)
建议将脚本加入 crontab 实现自动化监控。例如每 5 分钟检测一次:
- 编辑 crontab:
crontab -e - 添加如下行:
*/5 * * * * /path/to/monitor_ip.sh
原创文章,作者:mantou,如若转载,请注明出处:https://v2ez.com/1610.html