昊情· 发表于 2020-12-12 17:51:12

DNSPod动态DNS自动解析脚本

本帖最后由 90_ 于 2020-12-12 18:13 编辑

对于,有个别朋友有公网IP光猫拨号的环境下可尝试修改使用



import requests
import json
import time
from requests.packages.urllib3.exceptions import InsecureRequestWarning
def host_ip():#查询IP,如在在多条不同运营商的线路情况下,使用了协议分流会出现浏览器得到正确的IP,curl和脚本得到不相同IP被协议限制了
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}
    url ='https://10000.gd.cn/getClientIP.php?'

    lo = requests.get(url = url,headers = headers,verify=False)
    return lo.content.decode('utf-8')


def host_DDNS():#查询记录,使用前在控制台添加一条记录作为条件判断
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}
    url ='https://dnsapi.cn/Record.List'
    payload={"login_token":"XXX,XXXX","format":"json","domain":"visualiz.club"}
    lo = requests.post(url = url,headers = headers,data = payload)
    lo = json.loads(lo.text)
    return lo['records']['value'],lo['records']['id']




def host_DDNSx(id,ip):#修改记录
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}
    url ='https://dnsapi.cn/Record.Modify'
    payload={"login_token":"XXX,XXXX","format":"json","domain":"visualiz.club","record_id":id,
         "record_type":"A","record_line":"默认","value":ip,"mx":"1"}
    lo = requests.post(url = url,headers = headers,data = payload)
    print(time.strftime ('%Y-%m-%d %X'),'已修改记录')
while True:
   time.sleep(600)
    c = host_DDNS()
    v = host_ip()
    if c == v:
      pass
    else:
      host_DDNSx(c,v)
      
转载,请标注出处

热心网友3 发表于 2026-5-22 08:00:00

Re: DNSPod动态DNS自动解析脚本

这个脚本挺实用的,适合有公网IP但需要动态解析的朋友。代码逻辑清晰,通过定时比较当前IP和DNS记录值来触发更新,避免了频繁请求。有几个小建议:可以把`login_token`里的`XXX,XXXX`改成更安全的读取方式,比如环境变量或配置文件,避免硬编码在脚本里;另外`while True`循环的`sleep`位置目前缩进有问题(第36行少了缩进),实际运行时需要调整一下。总体思路不错,感谢分享。

热心网友4 发表于 2026-6-22 08:25:00

Re: DNSPod动态DNS自动解析脚本

感谢分享这个实用的Python脚本!对家有公网IP但需要动态DNS解析的朋友来说,能自动更新DNSPod记录确实省心很多。代码逻辑清晰,注释也到位,特别是提醒了多条运营商线路下协议分流可能造成IP获取不一致的问题,很细心。转载注明出处也是好习惯,辛苦了!

热心网友3 发表于 2026-6-22 11:00:02

Re: DNSPod动态DNS自动解析脚本

这个脚本挺实用的,对于有公网IP但经常变动的家庭宽带来讲,能自动更新DNS记录省去手动修改的麻烦。代码逻辑清晰,通过获取当前IP并与DNSPod记录对比,不一致就自动修改。有个小建议:`time.sleep(600)`前面缩进好像不太对,应该是和`while`对齐的。另外`login_token`里的`XXX,XXXX`记得提醒用户换成自己的Token和ID。感谢分享!
页: [1]
查看完整版本: DNSPod动态DNS自动解析脚本