相信大多数的天朝上网用户,使用网络的方式都是ADSL拨号上网,这样上网每次拨号获取的公网IP一般都是不同的。但是,如果你需要在动态公网IP下搭建一个可以随时随地访问的服务器(比如:建立WEB服务、FTP服务、Email服务、游戏服务器、视频服务、VPN、远程控制、网上电台、 数据动态传输等等 ),那么你就需要使用动态域名解析服务了。
动态域名解析服务
动态域名解析服务,简称DDNS(Dynamic Domain Name Server),是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候,客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务程序负责提供DNS服务并实现动态域名解析。就是说DDNS捕获用户每次变化的IP地址,然后将其与域名相对应,这样域名就可以始终解析到非固定IP的服务器上,互联网用户通过本地的域名服务器获得网站域名的IP地址,从而可以访问网站的服务。百度百科:动态域名解析。
动态域名解析过程
动态域名解析系统将用户的动态 IP 地址映射到一个固定的域名解析服务上(DDNS)。动态域名解析系统一般由两部分构成:第一部分是服务器 端程序,位于服务商的主机上;另一部分是客户端程序,就运行在广大用户的主机上。在每次连接网络的时候,客户端程序就会通过信息传递,把该客户主机的动态 IP 地址传送给位于服务商主机上的服务器程序,服务器程序负责提供 DNS 服务并实现动态域名解析服务,在收到客户端通知后服务器端程序立即更新数据,将新的 IP 地址与原有的固定域名绑定,这样就完成了动态域名解析的服务。
DDNS – Free Dynamic DNS Providers: http://dnslookup.me/dynamic-dns/
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://members.3322.net/dyndns/update?system=dyndns&hostname=域名"
http_code=`curl -o /dev/null -s -w %{http_code} --basic -u $USERNAME:$PASSWORD \
"http://members.3322.net/dyndns/update?myip=$myip&hostname=$HOST"`
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 "http://$USERNAME:$PASSWORD@dynupdate.no-ip.com/nic/update?hostname=$HOST&myip=$realip"
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 "http://$USERNAME:$PASSWORD@members.dyndns.org/nic/update?hostname=$HOST&myip=$realip&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
echo 'update DDNS success'
fi
fi
本文链接:https://www.kinber.cn/post/121.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: