以下仅分享个人使用的情况,方法可复制,但不是通用性的。
#!/bin/sh
#Check public IP address
myip=`curl 'https://api.ipify.org'` > /dev/null 2>&1
#Update DNS record
curl -X PUT https://api.cloudflare.com/client/v4/zones/<zone_id>/dns_records/<record_id> \
-H "X-Auth-Email: <username@domain.local>" \
-H "X-Auth-Key: <auth_token>" \
-H "Content-Type: application/json" \
--data "{\"type\":\"A\",\"name\":\"<DNS_record_name>\",\"content\":\"$myip\",\"ttl\":120,\"proxied\":false}" \
> /dev/null 2>&1
#return status to router
if [ $? -eq 0 ]; then
/sbin/ddns_custom_updated 1
else
/sbin/ddns_custom_updated 0
fi
(后面的部分是因为我要返回给路由器更新状态,如果只是做域名更新,可以不需要。)
这样,每次 IP 有变化,都可以更动更新我的域名记录,我随时也可以访问家里的设备了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.