Blog.wlens.top
463 字
2 分钟
动态IP监控:用 Telegram Bot 定时获取并通知你的公网IP

动态IP监控:用 Telegram Bot 定时获取并通知你的公网IP
本教程介绍如何编写脚本监控当前的公网 IPv4 和 IPv6 地址,并定时通过 Telegram Bot 发送 IP 信息。
准备工作
- Telegram Bot: 需要创建一个 Telegram Bot,并获取 Bot API Token。
- Chat ID: 需要获取 Chat ID,用于接收 Telegram 消息。
- 服务器: 一台运行 Linux 的服务器 。
创建脚本
-
创建脚本文件:
Terminal window sudo nano ip_notifier.sh -
复制脚本内容:
#!/bin/bash# Telegram Bot API Token 和 Chat IDBOT_TOKEN="your_bot_token_here" # 替换为你的 Bot TokenCHAT_ID="your_chat_id_here" # 替换为你的 Chat ID# 获取公网 IPv4 和 IPv6IPV4=$(curl -4 -s https://ifconfig.co)IPV6=$(curl -6 -s https://ifconfig.co)# 组装要发送的消息MESSAGE="Public IP update for $(hostname):%0AIPv4: ${IPV4:-Unavailable}%0AIPv6: ${IPV6:-Unavailable}"# 发送到 Telegramcurl -s --data "chat_id=$CHAT_ID&text=$MESSAGE" "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" > /dev/null说明:
BOT_TOKEN
: 替换为你创建的 Telegram Bot 的 API Token。CHAT_ID
: 替换为你要接收消息的 Chat ID。ifconfig.co
: 可替换为其他获取公网 IP 的服务。$(hostname)
: 获取服务器主机名。> /dev/null
: 防止输出到标准输出。
-
赋予脚本执行权限:
Terminal window sudo chmod +x ip_notifier.sh
添加 Cron 任务
-
打开 Cron 任务编辑器:
Terminal window sudo crontab -e -
添加 Cron 任务: 在 crontab 文件中添加以下行:
0 * * * * /usr/local/bin/ip_notifier.sh说明:
0 * * * *
: 每小时的第 0 分钟执行。/usr/local/bin/ip_notifier.sh
: 脚本的完整路径。 如果ip_notifier.sh
放在其他目录,需要修改为正确的路径。
测试
-
手动执行脚本:
Terminal window ./ip_notifier.sh检查是否收到 Telegram 消息。
-
等待 Cron 任务执行: 按照 Cron 表达式,脚本将会每小时执行一次,并向 Telegram 发送 IP 信息。
注意事项:
- 确保
ip_notifier.sh
文件在/usr/local/bin/
目录下,或者修改 Cron 任务中的路径。 - 如果 Cron 任务没有执行,检查 Cron 任务的语法是否正确,并检查
ip_notifier.sh
文件的权限。 - 根据实际需求调整 Cron 任务的频率。
动态IP监控:用 Telegram Bot 定时获取并通知你的公网IP
https://blog.wlens.top/posts/动态ip的主机定时发送ip信息到telegram-bot/