- 論壇徽章:
- 0
|
做 port-forward 的時(shí)候, 由於 adsl 的 ip 經(jīng)常變動(dòng), 所以每次都要進(jìn)入 router 找 ip 出來, 粉不方便.
所以就寫這個(gè)小程式, 希望也能幫到大家.
我的用法是: 抓到 ip 後配合 sitelutions 的免費(fèi) domain name, 再把 script 丟到 /usr/local/etc/rc.d 裡面, 在 rc.conf 裡面 script_name_enable="YES", 就能每次開機(jī)都能 自動(dòng)把我的 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/'
復(fù)制代碼
抓 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`."
復(fù)制代碼
記得 chmod 500, 不然密碼被人看光光.
p.s. 聽說好像有個(gè)叫『花生殼』 的也有類似功能, 暫時(shí)沒有時(shí)間去瞭解. |
-
-
dyndns.tar.gz
2006-12-22 12:19 上傳
點(diǎn)擊文件名下載附件
931 Bytes, 下載次數(shù): 19
小程式
|