463 字
2 分钟
动态IP监控:用 Telegram Bot 定时获取并通知你的公网IP
2024-09-13

动态IP监控:用 Telegram Bot 定时获取并通知你的公网IP#

本教程介绍如何编写脚本监控当前的公网 IPv4 和 IPv6 地址,并定时通过 Telegram Bot 发送 IP 信息。

准备工作#

  • Telegram Bot: 需要创建一个 Telegram Bot,并获取 Bot API Token。
  • Chat ID: 需要获取 Chat ID,用于接收 Telegram 消息。
  • 服务器: 一台运行 Linux 的服务器 。

创建脚本#

  1. 创建脚本文件:

    Terminal window
    sudo nano ip_notifier.sh
  2. 复制脚本内容:

    #!/bin/bash
    # Telegram Bot API Token 和 Chat ID
    BOT_TOKEN="your_bot_token_here" # 替换为你的 Bot Token
    CHAT_ID="your_chat_id_here" # 替换为你的 Chat ID
    # 获取公网 IPv4 和 IPv6
    IPV4=$(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}"
    # 发送到 Telegram
    curl -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: 防止输出到标准输出。
  3. 赋予脚本执行权限:

    Terminal window
    sudo chmod +x ip_notifier.sh

添加 Cron 任务#

  1. 打开 Cron 任务编辑器:

    Terminal window
    sudo crontab -e
  2. 添加 Cron 任务: 在 crontab 文件中添加以下行:

    0 * * * * /usr/local/bin/ip_notifier.sh

    说明:

    • 0 * * * *: 每小时的第 0 分钟执行。
    • /usr/local/bin/ip_notifier.sh: 脚本的完整路径。 如果 ip_notifier.sh 放在其他目录,需要修改为正确的路径。

测试#

  1. 手动执行脚本:

    Terminal window
    ./ip_notifier.sh

    检查是否收到 Telegram 消息。

  2. 等待 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/
作者
Lao Wang
发布于
2024-09-13
许可协议
CC BY-NC-SA 4.0