受欢迎的博客标签

Cloudflare DDNS API c# .NET

Published

动态IP自动更新到Cloudflare DNS

你有一个动态IP,通过域名访问你的服务器,那么你需要一个动态DDNS服务。可以使用Cloudflare的API实现动态IP自动更新到Cloudflare的DNS记录。

通过過 Cloudflare API 更新 DNS IP 

Table of Contents

工作思路

Cloudflare提供了很多API,可以通过API实现对DNS记录的增删改查。可以使用Cloudflare的API来实现动态IP的更新。

首先,我们需要一个Cloudflare的账号,并且在Cloudflare上添加一个域名。

其次,访问 https://dash.cloudflare.com/profile/api-tokens 获取你的API Key,注意给予该API Key适当的权限(区域资源)。

最后,我们需要写代码来实现动态IP的更新。

CloudFlare API 动态更新域名ip address

使用cloudflare提供的api进行更新域名ip。域名托管在 Cloudflare,可以通过 Cloudflare 官方提供的 API 去实时更新域名解析记录。

 

DNS只是提供域名转换为IP的服务
如果你是指DDNS(动态域名, 类似于花生壳等的服务), CloudFlare因为DNS解释更新快, 又提供非常好的API, 可以写脚本或者程序来实现.
基本思路是, 定时访问一些网站, 比如http://ipv4.icanhazip.com/ 获取当前环境的外网IP,;
然后调用CloudFlare的API把域名更新指向这个IP.
你的网关需要设置好NAT,把对应的端口映射到你的内网某台机器上.

具体实现

.NET 7.0

// Variables
string xAuthKey = "UltraPrivateSecretKeyCloudFlare"; // Global API Key
string xAuthEmail = "[email protected]"; // Domain owner email in cloudflare
string zoneIdentifier = "Domain identifier"; // Domain identifier

// Client
CloudFlareDnsClient cloudFlareDnsClient = new CloudFlareDnsClient(xAuthKey, xAuthEmail, zoneIdentifier);

// Create record ipv4; with proxied with cloudflare and TTL in 60 seg / 1 min
Record record01 = await cloudFlareDnsClient.Record.Create("test-01.deployrise.com", "8.8.8.8", false, RecordType.A, 60, comment: "This commentary it's optional");

// Create record cname; without proxied and ttl in 120 seg / 2 min
Record record02 = await cloudFlareDnsClient.Record.Create("test-02.deployrise.com", "google.com", false, RecordType.CNAME, 120, comment: "This commentary it's optional");

source:https://github.com/ljchuello/CloudFlare.Dns

 

Useful links

https://github.com/timothymiller/cloudflare-ddns  py

blog https://blog.toright.com/posts/7333/cloudflare-ddns

https://blog.csdn.net/Imkiimki/article/details/124564356

https://blog.cunoe.com/blog/cf-ddns