如果你有一个经常变化的公网IP,你可能会需要用DDNS将这个IP绑定在同一个域名上,这样就可以不必每次输入一串IP地址了。我用的DNS服务商Cloudflare并没有提供名为DDNS的服务,但是其API可以实现类似的效果。
之前我用的是这里的方法,不过最近cloudflare更新了第四代API,那个方法已经失效。于是水博文的机会来了。
原料:
步骤:
zone ID并新建一个API_KEY。RECORD_ID,在终端运行:curl -X GET "https://api.cloudflare.com/client/v4/zones//dns_records" \
-H "X-Auth-Email: " \
-H "X-Auth-Key: " \
-H "Content-Type: application/json" \
-x http://localhost:8087
其中 -x是本地代理地址,可选。大概能从返回的一坨json中找到id那一项。
<ZONE_ID>,<RECORD_ID>,邮箱地址,API_KEY,子域名什么的。如果不需要代理的话删除-x那一行。#!/bin/sh
NEW_IP=`curl -s http://ns1.dnspod.net:6666`
CURRENT_IP=`cat /var/tmp/current_ip.txt`
if [ "$NEW_IP" = "$CURRENT_IP" ]
then
echo "No Change in IP Adddress"
else
curl -X PUT "https://api.cloudflare.com/client/v4/zones//dns_records/" \
-x http://localhost:8087 \
-H "X-Auth-Email: " \
-H "X-Auth-Key: " \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"","content":"'$NEW_IP'","ttl":1}'
echo $NEW_IP > /var/tmp/current_ip.txt
fi
# crontab -e
*/120 * * * * /path/of/your/script.sh
写字好累(躺