在Openwrt中獲取WAN口IP地址並推送至微信


在Openwrt中獲取WAN口IP地址並推送至微信

前言

自從撿回了蝸牛用於家用NAS后,使用公網IP訪問家里的服務更加頻繁。雖然家里的軟路由已經配置了DDNS來更新IP域名綁定信息,但偶爾還是出現了幾次插件運行出錯。於是自己寫了一個獲取WAN口IP並利用 Server醬 推送至微信的腳本,通過Crontab定時任務執行來檢查IP是否變化。

代碼部分

#/bin/ash
#用於openwrt
#updata 2020/12/19 23:07
#start
echo "==========開始=========="
echo `date '+%Y-%m-%d %H:%M:%S'`
#獲取當前wan_ip
current_wan_ip=`ifconfig -a | grep inet | grep -v inet6 | grep -v 127.0.0.1 | grep -v 192.168.0.1 | awk '{print $2}' | tr -d "addr:"`
echo "IP: $current_wan_ip"
#是否存在ip.txt
if [ ! -f "/tmp/ip.txt" ]; then
	echo "不存在ip.txt文件"
	#第一次推送ip
	content="?text=路由器IP已更新&""desp=當前IP:"$current_wan_ip
	url="https://sc.ftqq.com/Server醬KEY已隱去.send"$content
	curl $url
	echo "已推送當前ip"
	echo ${current_wan_ip} > /tmp/ip.txt
	echo "當前IP已寫入ip.txt"
else
	last_ip=`cat /tmp/ip.txt`
	if [ "${current_wan_ip}" != "${last_ip}" ]; then
		#發送新ip並更新ip.txt
		content="?text=路由器IP已更新&""desp=當前IP:"$current_wan_ip
		url="https://sc.ftqq.com/Server醬KEY已隱去.send"$content
		curl $url
		echo ${current_wan_ip} > /tmp/ip.txt
		echo "已推送新ip並更新ip.txt"
	else
		echo "IP無變化,不需要推送"
	fi
fi
echo `date '+%Y-%m-%d %H:%M:%S'`
echo -e "==========結束==========\n"
#end

部署

  1. 上傳該腳本並賦予執行權限

    chmod a+x check_ip.sh

  2. 編輯crontab任務計划

    crontab -e進入任務計划列表

    添加以下任務,每5分鍾執行一次腳本,並將執行結果寫入到push.log文件中:

    */5 * * * * /usr/bin/myscripts/check_ip/check_ip.sh >> /usr/bin/myscripts/check_ip/push.log 2>&1 &
    
  3. 通過push.log查看運行情況

    root@OpenWrt:~# tail -f /usr/bin/myscripts/check_ip/push.log
    2020-12-219 23:14:00
    ==========開始==========
    2020-12-19 23:15:00
    IP: xx.xx.72.193
    IP無變化,不需要推送
    2020-12-19 23:15:00
    ==========結束==========
    
    ==========開始==========
    2020-12-19 23:20:00
    IP: xx.xx.72.193
    IP無變化,不需要推送
    2021-02-19 23:20:00
    ==========結束==========
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM