สำหรับ everydns.net
แก้ไขไฟล์ ip-up.local ดังนี้
# vi /etc/ppp/ip-up.local
... if [ $PPP_IFACE == "ppp0" ]; then # REFRESH DNS # REFRESH IPTABLES # REFRESH SQUID # RECONNECT DDNS /usr/sbin/d.updateeverydns fi ...
สร้างสคริปต์อัปเดตชื่อ /usr/sbin/d.updateeverydns ดังนี้
# vi /usr/sbin/d.updatezeverydns
#!/bin/bash # SCRIPT FOR PPP TO UPDATE DNS RECORD AT everydns.net # PREREQUIST: # 0.REGISTER USERNAME & PASSWORD AT www.everydns.net # - ADD DYNAMIC DNS example.com # - ADD DYNAMIC DNS www.example.com # 1.DOWNLOAD FILE http://www.everydns.net/eDNS.pl # PUT IN /usr/local/bin # 2.INSTALL ncftp # # aptitude install ncftp # 3.INSTALL PERL MIME::Base64 # # perl -MCPAN -e 'install MIME::Base64' # UPDATE FUNCTION #usage: updateeverydns $USER $PASSWORD $IP_ADDR $DOMAIN $HOST # : updateeverydns MYUSERNAME MYPASSWORD $PPP_IP example.com www.example.com updatezone() { USER=$1 PASSWORD=$2 IP_ADDR=$3 DOMAIN=$4 HOST=$5 eDNS.pl -u $USER -p $PASSWORD -ip $IP_ADDR -d $DOMAIN eDNS.pl -u $USER -p $PASSWORD -ip $IP_ADDR -d $HOST } # BEGIN MAIN PROGRAM I_FACE=ppp0 USER="MYUSERNAME" PASSWD="MYPASSWORD" DOMAIN1="example.com" HOST1="www.example.com" IP_ADDR=`ifconfig $I_FACE | fgrep -i inet | cut -d : -f 2 | cut -d \ -f 1` # FOR example.com echo "Updating $DOMAIN1 ..." updatezone $USER $PASSWD $IP_ADDR $DOMAIN1 $HOST1 echo "Finished."
# chmod 0700 /usr/sbin/d.updateeverydns
ตามคำแนะนำของ everydns คือจะต้องใช้สคริปต์ของเขา ซึ่งสคริปต์นั้นเขียนด้วย perl มีการเรียกใช้ ncftp จึงต้อง...
ดาวน์โหลดสคริปต์มาก่อน และนำไปเก็บไว้ที่ /usr/local/bin
# wget http://www.everydns.net/eDNS.pl
# chmod 755 eDNS.pl
# mv eDNS.pl /usr/local/bin
ในสคริปต์จะต้องเรียกใช้ ncftp จึงต้องติดตั้ง ncftp ก่อน
# aptitude install ncftp
ติดตั้ง perl MIME::base64 ตามคำแนะนำ
# perl -MCPAN -e 'install MIME::Base64'
ครั้งแรกเราเรียกใช้ครั้งเดียว ที่เหลือระบบจะทำอัตโนมัติทุกครั้งที่สายหลุด หรือเปิดเครื่อง
# /usr/sbin/d.updateeverydns
เสร็จแล้วครับ