当前位置: 首页 > news >正文

西部数码ddns更新ipv6,通过api实现

在西部数码West.cn上通过 API 实现 IPv6 的 DDNS动态域名解析更新核心逻辑是编写脚本获取当前服务器的 IPv6 地址并调用西部数码的 DNS API 将该地址更新到指定的域名解析记录中。了解西部数码 API 接口西部数码主要使用V2 API进行 DNS 管理。你需要关注的两个关键接口是1. 查询当前解析记录 (GetRecord)核心逻辑获取当前 IPv6 读取上次保存的 IPv6 相同 → 不更新 不同 → 调用西部数码 API 保存新 IPv6下面是完整版。importsubprocessimportrequestsimportreimportos# # 配置# DOMAINexample.com# 完整子域名HOSTNAMEhome.example.com# 西部数码 域名ApiKeyAPI_DOMAIN_KEY你的ApiKey# 网卡名称INTERFACEenp2s0# 保存上次IPLAST_IP_FILE/tmp/west_ddns_ipv6.txt# # 获取IPv6# defget_ipv6():cmd[ip,-6,addr,show,INTERFACE]outputsubprocess.check_output(cmd,encodingutf-8)matchesre.findall(rinet6 ([0-9a-fA-F:])/64 scope global,output)ifnotmatches:returnNoneforipinmatches:# 排除本地链路地址ifip.startswith(fe80):continuereturnipreturnNone# # 读取旧IP# defload_last_ip():ifnotos.path.exists(LAST_IP_FILE):returnNonewithopen(LAST_IP_FILE,r)asf:returnf.read().strip()# # 保存IP# defsave_last_ip(ip):withopen(LAST_IP_FILE,w)asf:f.write(ip)# # 更新DNS# defupdate_ddns(ipv6):urlhttps://api.west.cn/API/v2/domain/dns/params{act:dnsrec.update,domain:DOMAIN,apidomainkey:API_DOMAIN_KEY,hostname:HOSTNAME,record_value:ipv6}responserequests.get(url,paramsparams,timeout20)print(状态码:,response.status_code)print(response.text)ifresponse.status_code200:save_last_ip(ipv6)print(IPv6已保存)# # 主程序# if__name____main__:ipv6get_ipv6()ifnotipv6:print(未找到IPv6)exit(1)print(当前IPv6:,ipv6)last_ipload_last_ip()print(上次IPv6:,last_ip)# IP没变化ifipv6last_ip:print(IPv6未变化无需更新)exit(0)print(IPv6已变化开始更新DDNS)update_ddns(ipv6)开机自动运行推荐最稳的是systemd创建sudo nano /etc/systemd/system/ddns.service内容[Unit] DescriptionWest DDNS IPv6 [Service] ExecStart/usr/bin/python3 /home/ubuntu/ddns/ddns.py WorkingDirectory/home/ubuntu/ddns Restartalways [Install] WantedBymulti-user.target启动sudo systemctl daemon-reload sudo systemctl enable ddns sudo systemctl start ddns查看systemctl status ddns
http://www.zskr.cn/news/1389113.html

相关文章:

  • QMCDecode:技术解锁QQ音乐加密音频的跨平台播放方案
  • AI开发成本优化实战:从Token无意识消耗到精细化管控
  • 2025-2026年全案代运营推荐:五大榜产品评测精准投放降本增效案例专业适用场景
  • 避坑指南:SD卡SPI初始化失败?用逻辑分析仪抓包帮你快速定位问题
  • 负数充值案例
  • WeChatExporter:突破性微信聊天记录本地化备份解决方案
  • av1编码--方向帧内预测
  • pandasql实战指南:用SQL语法操作DataFrame的原理与工程实践
  • Linux主流发行版:版本介绍、核心异同与精准场景选型
  • Windows右键菜单终极清理指南:3分钟告别杂乱,提升操作效率
  • AI增强开发实践:如何系统化提升40%软件交付效率
  • Beyond Compare 5密钥生成器:深入解析Python实现的完整解决方案
  • AI编程助手提示工程:让Claude/Cursor生成高质量Vue/Nuxt代码
  • 2026年AI智能体开发框架全景解析:从LangChain到Dify的实战选型指南
  • 【方法论+案例】物流企业数字化转型的EA全景实施路线图:业务战略理解与现状评估、蓝图架构规划、实施路径设计
  • PDCA闭环管理模式的核心原理与应用
  • 大模型聚合平台深度评测:阿里云百炼 vs 腾讯云ADP,企业如何选型?
  • 告别脚本搬家:一个LabVIEW项目里优雅管理MATLAB .m文件的完整方案
  • Cocos游戏出海Admob集成:绕过uniapp插件的原生桥接方案
  • 告别风扇噪音困扰:TPFanCtrl2让你的ThinkPad笔记本重获宁静
  • # MySQL 主从磁盘满导致集群崩溃:故障复盘与恢复实录
  • JMeter中文显示为\uXXXX的根因与全链路解决方案
  • 基于ESP32与HTTP 418状态码的智能叛逆茶壶项目实践
  • 基于Claude的SaaS Forge:从自然语言描述到生产就绪代码的自动化生成
  • LLM流式传输断点续传:Resume Token与Last-Event ID实现原理与成本分析
  • 斩断地环路:从输入共模扼流到星形接地,高精度采集卡全链路信号完整性防御战
  • 华为OD算法复习2——字符串
  • TracerKit:基于eBPF的Linux系统追踪工具集设计与实践
  • 关于Spring AI Alibaba
  • 【Android】图片工具箱-免费开源图片处理软件