Shell 监控出口公网IP是否发生变化并企微告警

释放双眼,带上耳机,听听看~!
🤖 由 ChatGPT 生成的文章摘要

目前博客运行在家里的E5服务器上,微信登录接口的白名单会检测E5服务器的出口IP,家用IP经常出现公网IP发生变化的情况,当出口IP发生变化微信接口的白名单会拦截非白名单的IP。想实时监控出口的IP是否变化并及时修改整理的本次脚本

[root@blog ~]# cat /opt/ip_wechat.sh
#!/bin/bash

#保存要发送人员的账号,在通讯录可获取,多个人员之间使用空格分隔,以下为展示数据
user="abcdocker"
#企业微信ID:企业微信管理界面-’我的企业‘页面中获取
corpid="xxxwwc135adbb1d7c752d"
#应用秘钥:在‘自建应用’-‘创建应用’-‘应用管理’中获取
corpsecret="f2MBUMIhLrpM3NPTHo_xxxxxxxxx"
#企业应用ID:在'自建应用'-'创建应用'-'应用管理'中获取
agentld=1000004

#------------------------以上变量需要自行修改-----------------------------------

#curl -s 静默模式,就是不显示错误和进度
A=`curl -s https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid\&corpsecret=$corpsecret`
#解析json格式 并获取access_token值
token=`echo $A | jq -c '.access_token'`
#去除变量值两边的双引号
token=${token#*\"}
token=${token%*\"}
#请求地址
URL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$token"

# 保存当前公网IP的文件
CURRENT_IP_FILE="/opt/current_ip.txt"

# 获取当前公网IP
NEW_IP=$(curl -s http://ipinfo.io/ip)

# 检查是否有变化
if [ ! -f "$CURRENT_IP_FILE" ]; then
    # 如果文件不存在,保存当前IP并退出
    echo "$NEW_IP" > "$CURRENT_IP_FILE"
    echo "Initial IP saved: $NEW_IP"
    exit 0
fi

# 加载当前保存的IP
OLD_IP=$(cat "$CURRENT_IP_FILE")

# 比较新旧IP
if [ "$NEW_IP" != "$OLD_IP" ]; then
    # IP有变化,保存新IP并通知
    echo "$NEW_IP" > "$CURRENT_IP_FILE"
    echo "IP changed from $OLD_IP to $NEW_IP"
    # 这里可以添加发送通知邮件或者其他操作
    #请求地址
    URL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$token"
    msg='公网IP发生变化,新IP:'$NEW_IP' \n发生时间: '`date '+%Y-%m-%d-%H:%M:%S'`
        for I in $user;do
        #发送的JSON内容
        JSON="{\"touser\": \"$I\",\"msgtype\": \"text\",\"agentid\": \"$agentld\",\"text\": {\"content\": \"$msg\"},\"safe\":0 }"
        #以POST的方式请求
        curl -d "$JSON" "$URL" >/dev/null 2>&1
        done
else
    echo "IP is still $NEW_IP"
fi

将脚本保存后新增定时任务

crontab -e
*/30 * * * * sh /opt/ip_wechat.sh &>/dev/null

当IP没有发生变化,执行结果如下
Shell 监控出口公网IP是否发生变化并企微告警

当IP发生变化,执行结果如下

Shell 监控出口公网IP是否发生变化并企微告警

告警内容如下
Shell 监控出口公网IP是否发生变化并企微告警

给TA打赏
共{{data.count}}人
人已打赏
Linux

信创Arm及x86麒麟V10离线安装Keeplived

2024-12-5 10:58:36

Linux群晖

Domain Admin 开源的域名及证书管理平台

2025-1-8 12:29:11

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索