# jddns **Repository Path**: yunhoio/jddns ## Basic Information - **Project Name**: jddns - **Description**: java 版ddns 动态域名解析,大部分喜欢软件开发的博主都喜欢用.io域名,因此在没有固定服务器IP的情况下,就需要用到动态域名解析。由于.io域名是由godaddy运营商来提供,因此需要按照其提供的对应技术规范实现。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-01-22 - **Last Updated**: 2021-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JDDNS java 版ddns 动态域名解析,大部分喜欢软件开发的博主都喜欢用.io域名,因此在没有固定服务器IP的情况下,就需要用到动态域名解析。由于.io域名是由godaddy运营商来提供,因此需要按照其提供的对应技术规范实现。 [文档地址:https://yunho.io 云户的博客](https://yunho.io/%E7%BD%91%E7%AB%99%E7%9B%B8%E5%85%B3/#godaddy) ## GoDaddy https://developer.godaddy.com/ ### 申请API Key 访问:https://developer.godaddy.com/keys ![image-20210121110616334](DDns.assets/image-20210121110616334.png) ![image-20210121110626011](DDns.assets/image-20210121110626011.png) > ote:测试 > > Production:生产环境 ### 查看API文档 https://developer.godaddy.com/doc/endpoint/domains 其中 OTE的使用链接为 https://api.ote-godaddy.com production 的使用链接为 https://api.godaddy.com > 由于在API文档中有try out ,我想当然的直接测试了,但是发现一直有问题 才又认真看了边文档,发现有问题的 > > 文档中首先有提到 在发送请求时应带上你申请的key和secret,并通过如下请求验证是否可用 > > ```shell > curl -X GET -H"Authorization:sso-key API_KEY:API_SECRET" "https://api.ote-godaddy.com/v1/domains/available?domain=baidu.com" > ``` **建议直接用正式环境,测试环境调用有点问题,没细研究** ### 获取域名记录 调用 获取域名记录接口: **v1/domains/** https://api.godaddy.com/v1/domains/{domain}/records/{type}/{name} ```shell curl -X GET "https://api.godaddy.com/v1/domains/baidu.com/records/A/%40" -H "accept: application/json" -H "Authorization: sso-key API_KEY:API_SECRET" ``` Response ```json [{"data":"xx.xx.xx.x","name":"@","ttl":3600,"type":"A"}] ``` ### 修改域名A记录 https://api.godaddy.com/v1/domains/{domain}/records/{type}/{name} ```shell curl -X PUT "https://api.godaddy.com/v1/domains/baidu.com/records/A/%40" -H "accept: application/json" -H "Content-Type: application/json" -H "Authorization: sso-key API_KEY:API_SECRET" -d "[ { \"data\": \"192.168.1.111\", \"port\": 80, \"priority\": 0, \"protocol\": \"string\", \"service\": \"string\", \"ttl\": 600, \"weight\": 0 }]" ``` ### 写程序实现DDNS 利用https://jsonip.com获取当前IP