OpenWRT調用花生殼


轉載:https://www.cnblogs.com/xdsnet/p/5196001.html

OpenWrt作為常見路由器系統,提供了較強的sh環境,這使得其可以很好的利用花生殼提供的網頁版實現公網環境下的動態域名解析支持。

sh腳本(文件名:OpenWrtForOray)

#!/bin/sh - # filename:OpenWrtForOray # USER值為花生殼用戶名 USER="nameid" # PASS值為花生殼對應登錄密碼 PASS="password" # DOMAIN值為該用戶下可使用的域名 DOMAIN="hostname.vicp.cc" # IPPORT值是在OpenWrt上配置的可獲取公網IP地址的網口,家用一般是 pppoe-wan IPPORT="pppoe-wan" # 下面的代碼獲取到實際的公網 IP 地址 IP=$(ifconfig ${IPPORT} |awk -F "[: ]+" '/inet addr/{print $4}') # 下面生成完整的花生殼網頁版調用URL地址 URL="http://${USER}:${PASS}@ddns.oray.com:80/ph/update?hostname=${DOMAIN}&myip=${IP}" # 下面的代碼檢測是否發生IP地址變化,如果沒有變化就不產生實際調用 if [ -f /tmp/oray ];then OLD_IP=$(cat /tmp/oray | awk '{print $2}') if [ "${OLD_IP}" = "${IP}" ];then exit fi fi wget -q -O /tmp/oray -q ${URL} 

腳本的放置與處理

把腳本放置到 /etc/hotplug.d/iface/ 目錄下,執行

chmod a+x /etc/hotplug.d/iface/OpenWrtForOray 

再編輯 /etc/crontabs/root文檔,添加重復執行的命令,比如可以執行下面的命令:

echo */1 * * * * /etc/hotplug.d/iface/OpenWrtForOray start >> /etc/crontabs/root 

再重新啟動路由器的定時任務服務

/etc/init.d/cron restart

正確的話可通過命令

ps | grep cron

查看cron是否啟動成功,一般顯示為:

2999 root 1508 S /usr/sbin/crond -c /etc/crontabs -l 6
3000 root 1495 S grep cront

多個域名的處理

因為一個花生殼用戶可以管理多個域名,如果想在這個路由器上綁定多個域名,有兩個方法

  1. 按前述步驟制作多份腳本,命名為不同的名字,並添加到循環執行中去

  2. 修改腳本,主要修改涉及 DOMAIN 值的地方,比如修改為 DOMAIN1 DOMAIN2 ... DOMAINN ,對應產生 URL1 URL2 ... URLN,然后后面 wget語句處改為多個:

wget -q -O /tmp/oray -q ${URL1} wget -q -O /tmp/oray -q ${URL2} ... wget -q -O /tmp/oray -q ${URLN} 

即可。


免責聲明!

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



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