- 论坛徽章:
- 0
|
做 port-forward 的時候, 由於 adsl 的 ip 經常變動, 所以每次都要進入 router 找 ip 出來, 粉不方便.
所以就寫這個小程式, 希望也能幫到大家.
我的用法是: 抓到 ip 後配合 sitelutions 的免費 domain name, 再把 script 丟到 /usr/local/etc/rc.d 裡面, 在 rc.conf 裡面 script_name_enable="YES", 就能每次開機都能 自動把我的 domain name 指到我的 router 了.
抓 external IP:
- #!/bin/sh
- fetch -q -o - http://www.ipchicken.com/ | perl -pe 's/\n//' | perl -pe 's/.+<b>(.+)<br>.+.+Add to Favorites.+/$1/' | perl -pe 's/\s+([^\s]+)\s+/$1\n/'
复制代码
抓 IP, 改 dns A record :
- #!/bin/sh
- ## Set the username, password and the account ID.
- USER=xxxxxx
- PASSWORD=xxxxxx
- ACCOUNT_ID=123456
- DNS_RECORD=example.domain.name
- ## Get external IP from www.ipchicken.com
- INET_ADDR=`fetch -q -o - http://www.ipchicken.com/ | perl -pe 's/\n//' | perl -pe 's/.+<b>(.+)<br>.+.+Add to Favorites.+/\$1/' | perl -pe 's/\s+([^\s]+)\s+/\$1/'`
- ## Get external IP from www.geobytes.com
- #INET_ADDR=`fetch -q -o - http://www.geobytes.com/IpLocator.htm | grep -e "ipaddress" | perl -pe 's/.+<input.+name=\"ipaddress\".+value=\"([\d.]+)\".+/\$1/'`
- ## Update DNS record by a request.
- echo
- logger -t sitelutions.com -s "Updating [$DNS_RECORD] point to $INET_ADDR... `fetch -q -o - https://www.sitelutions.com/dnsup?id=$ACCOUNT_ID\&user=$USER\&pass=$PASSWORD\&ip=$INET_ADDR`."
复制代码
記得 chmod 500, 不然密碼被人看光光.
p.s. 聽說好像有個叫『花生殼』 的也有類似功能, 暫時沒有時間去瞭解. |
|