相信大多数的天朝上网用户,使用网络的方式都是ADSL拨号上网,这样上网每次拨号获取的公网IP一般都是不同的。但是,如果你需要在动态公网IP下搭建一个可以随时随地访问的服务器(比如:建立WEB服务、FTP服务、Email服务、游戏服务器、视频服务、VPN、远程控制、网上电台、 数据动态传输等等 ),那么你就需要使用解析服务了。
解析服务
解析服务,简称(Dynamic Domain Name Server),是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候,客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务程序负责提供DNS服务并实现解析。就是说捕获用户每次变化的IP地址,然后将其与域名相对应,这样域名就可以始终解析到非固定IP的服务器上,互联网用户通过本地的域名服务器获得网站域名的IP地址,从而可以访问网站的服务。。
动态域名解析过程
动态域名解析系统将用户的动态 IP 地址映射到一个固定的域名解析服务上()。动态域名解析系统一般由两部分构成:第一部分是服务器 端程序,位于服务商的主机上;另一部分是客户端程序,就运行在广大用户的主机上。在每次连接网络的时候,客户端程序就会通过信息传递,把该客户主机的动态 IP 地址传送给位于服务商主机上的服务器程序,服务器程序负责提供 DNS 服务并实现动态域名解析服务,在收到客户端通知后服务器端程序立即更新数据,将新的 IP 地址与原有的固定域名绑定,这样就完成了动态域名解析的服务。
DDNS – Free Dynamic DNS Providers:
Update API:
-
#!/bin/sh
-
-
if [ $1 = "f3322" ] ; then
-
USERNAME=cywdns
-
PASSWORD=caiyunwei000000
-
HOST=cywddns.f3322.net
-
if [ ! -e /tmp/dnsip.txt ] ; then
-
ping $HOST -c1 | grep PING | awk '{ print $3 }' | sed 's/[()]//g' > /tmp/dnsip.txt
-
fi
-
-
mydnsip=$(head -1 /tmp/dnsip.txt)
-
-
curl -s http://icanhazip.com > /tmp/ip.txt
-
#`curl http://ddns.oray.com/checkip | cut -d' ' -f 6 | cut -d'<' -f 1` #http://checkip.dyndns.com/
-
myip=$(head -1 /tmp/ip.txt)
-
echo "current IP:"$myip
-
-
if [ "$mydnsip" = "$myip" ] ; then
-
echo 'IP is not change'
-
else
-
#lynx -mime_header -auth=用户名:密码 "域名"
-
http_code=`curl -o /dev/null -s -w %{http_code} --basic -u $USERNAME:$PASSWORD \
-
""`
-
if [ $http_code -eq 200 ] ; then
-
echo 'update DDNS success'
-
echo $myip > /tmp/dnsip.txt
-
else
-
echo 'update DDNS fail:$http_code'
-
fi
-
fi
-
elif [ $1 = "noip" ] ; then
-
USERNAME=cywdns
-
PASSWORD=caiyunwei000000
-
HOST=cywddns.ddns.net
-
-
realip=`curl -s http://icanhazip.com` #当前IP
-
echo "current IP:"$realip
-
-
noipDdns=`nslookup $HOST | tail -1 | cut -d ' ' -f 3` #服务器中的公网IP
-
echo "noipDdns IP:"$noipDdns
-
-
if [ "$realip" = "$noipDdns" ]; then #当二者一样时不更新DNS
-
echo "IP is not change"
-
exit 0
-
else
-
curl ""
-
echo 'update DDNS success'
-
-
fi
-
elif [ $1 = "dyndns" ] ; then
-
USERNAME=leicaseteam
-
PASSWORD=swx_viva
-
HOST=geomax.servebbs.net
-
PORT=5800
-
-
realip=`curl -s http://icanhazip.com` #当前IP
-
echo "current IP:"$realip
-
-
dynDdns=`nslookup $HOST | tail -1 | cut -d ' ' -f 3` #服务器中的公网IP
-
echo "dynDdns IP:"$dynDdns
-
-
if [ "$realip" = "$dynDdns" ]; then #当二者一样时不更新DNS
-
echo "IP is not change"
-
exit 0
-
else
-
curl ""
-
echo 'update DDNS success'
-
fi
-
-
fi
阅读(4652) | 评论(0) | 转发(0) |