___  ___    _ _    _  _ _____   _____
 / __|/ _ \  | | |  | || |_ _\ \ / / __|
| (_ | (_) | |_  _| | __ || | \ V /| _|
 \___|\___/    |_|  |_||_|___| \_/ |___|

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

用Cloudflare的v4 API实现动态DNS(DDNS)

BY: @heyeshuang | CREATED: July 5, 2018, 2:32 p.m. | VOTES: 27 | PAYOUT: $0.07 | [ VOTE ]

如果你有一个经常变化的公网IP,你可能会需要用DDNS将这个IP绑定在同一个域名上,这样就可以不必每次输入一串IP地址了。我用的DNS服务商Cloudflare并没有提供名为DDNS的服务,但是其API可以实现类似的效果。

之前我用的是这里的方法,不过最近cloudflare更新了第四代API,那个方法已经失效。于是水博文的机会来了。

原料:

  1. 一个域名,并用Cloudflare管理
  2. 一台经常开着的,有计划任务或者cron,可以运行curl的电脑
  3. (可选)如果API地址被屏蔽的话,可能需要可用的代理

步骤:

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那一项。

#!/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

~~写字好累(躺~~

TAGS: [ #cn ] [ #dns ] [ #cloudflare ] [ #web ]

Replies

@cn-naughty.boy | July 5, 2018, 2:45 p.m. | Votes: 1 | [ VOTE ]

@heyeshuang, 亚克西!

@cn-cutie.pie | July 5, 2018, 2:48 p.m. | Votes: 1 | [ VOTE ]

@heyeshuang, 嘻嘻,小可可来给你点赞啦~~~ [IMAGE: https://i.imgur.com/MO8w421.png]

BTW, @cn-naughty.boy 淘气包,烛光晚餐去哪...脸红中...

@cnbuddy | July 5, 2018, 2:57 p.m. | Votes: 0 | [ VOTE ]

你好!新人吗?《steemit指南》拿一份吧,以免迷路; 另外一定要去 @team-cn 的新手村看看,超级热闹的大家庭。如果我打扰到你,请回复“取消”。

@ustd | July 5, 2018, 4:15 p.m. | Votes: 9 | [ VOTE ]

Hi Passing by And Upvoted you :) !
:
“Most people do kiss and tell; most of them just don’t tell many people.” ====> Mokokoma Mokhonoana

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>