Namesilo 的 DDNS

2016-04-26 04:33:38 +08:00
 dynaguy

家里的公网 IP 地址有时会变化,这使得我的某些依赖域名的服务(网站, VPN , rsync 备份等)随之陷入瘫痪。原来我是在我的路由器上用免费的 DDNS 功能,但这种免费服务一般不能使用自己的域名,又或者必须将域名迁移到 DDNS 的服务商那里。总之很是不爽。

在 V2EX 看到很多人推荐,我把域名也转到了 Namesilo 。 (拜拜了,狗带!) Namesilo 不仅价格合理,而且我发现竟然还有 API 接口支持!惊喜之后上网搜索有关 Namesilo 的 DDNS 方案,不料大失所望!只发现有在 WINDOWS 的 POWERSHELL 下的一个方案。

好吧,那就自己动手解决吧。

#!/bin/bash

##Domain name:
DOMAIN="mydomain.tld"

##Host name. 
##If you want manage host "myhost.mydomain.tld", then
HOST="myhost"

##APIKEY obtained from Namesilo:
APIKEY="c40031261ee449037a4b4"

##Saved history pubic IP from last check
IP_FILE="/var/log/MyPubIP"

##Get the current public IP 
CUR_IP=$(curl -s http://icanhazip.com)

##Exit if curl failed
if [ $? -ne 0 ]; then
   exit 1
fi

##Check file for previous IP address
if [ -f $IP_FILE ]; then
  KNOWN_IP=$(cat $IP_FILE)
else
  KNOWN_IP=
fi

##See if the IP has changed
if [ "$CUR_IP" != "$KNOWN_IP" ]; then
  echo $CUR_IP > $IP_FILE
  logger -t IP.Check -- Public IP changed to $CUR_IP

  ##Update DNS record in Namesilo:
  curl -s "https://www.namesilo.com/api/dnsListRecords?version=1&type=xml&key=$APIKEY&domain=$DOMAIN" > $DOMAIN.xml 
  RECORD_ID=`xmllint --xpath "//namesilo/reply/resource_record/record_id[../host/text() = '$HOST.$DOMAIN' ]" $DOMAIN.xml | grep -oP '(?<=<record_id>).*?(?=</record_id>)'`
  curl -s "https://www.namesilo.com/api/dnsUpdateRecord?version=1&type=xml&key=$APIKEY&domain=$DOMAIN&rrid=$RECORD_ID&rrhost=$HOST&rrvalue=$CUR_IP&rrttl=7207"
else
  logger -t IP.Check -- NO IP change
fi

exit 0

详情: http://blog.pztop.com/2016/04/25/Namesilo-with-DDNS/

11434 次点击
所在节点    Linux
23 条回复
lwd2136
2016-12-01 09:59:46 +08:00
@dynaguy 谢谢 最后搞定了,原系统 grep 命令有问题,我改过参数,修改回来就好了
Remember
2018-01-17 02:51:49 +08:00
域名不在 namesilo 可以用他家解析服务吗
dynaguy
2018-01-17 11:32:31 +08:00
@Remember 不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/274392

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX