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

cloudns二级免费域名python更新ipv6 dns记录

没找到api,托管到cloudflare也不行。就只能写代码了(只写了更新和添加单条ipv6记录)
在这里插入图片描述
需要修改的地方
请求头的cookies填自己的
data里的zone填自己的

import requests
from lxml import etree host=''#子域名
cookies='填自己的'
zone='自己域名的'
ipv6 = requests.get('https://6.ipw.cn/').text#获取ipv6地址
print('本机ipv6地址:%s'%ipv6)get_records_url='https://www.cloudns.net/ajaxPages.php?action=records'
url ='https://www.cloudns.net/ajaxActions.php?action=records'
headers = {'cookie':cookies,'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'}#获取记录
get_records ={"show": "get","zone": zone,"type": "all","order-by": "null","page": "1"
}
#修改cname
update_data = {
'show': 'editRecord',
'zone': zone,
'record_id': '',
'settings[host]': '',
'settings[record]': '',
'settings[ttl]': '3600'
}
#添加aaaa
add_ipv6_data = {"show": "addRecord","zone": zone,"recordType": "AAAA","active": "1","settings[host]": "","settings[record]": "2409:8a62:6421:f881:9d23:59d2:10b:b1d5","settings[ttl]": "3600"
}response_records_table = requests.post(get_records_url,headers=headers,data=get_records)#获取dns记录表格# print(response_records.text)tree = etree.HTML(response_records_table.text)# 测试XPath表达式
record_host_path = '//*[@id="recordsBody"]/tr/td[2]/div/div/text()'#主机
record_type_path = '//*[@id="recordsBody"]/tr/td[3]/text()'#记录类型
record_value_path = '//*[@id="recordsBody"]/tr/td[4]/div/div/text()'#值/指向到
record_id_path = '//*[@id="recordsBody"]/tr/@id'#id
record_host = [host.strip() for host in tree.xpath(record_host_path)]
record_type = [type.strip() for type in tree.xpath(record_type_path)]
record_value= [value.strip() for value in tree.xpath(record_value_path)]
record_id = [id.replace('row-','') for id in tree.xpath(record_id_path)]
# print(record_host)
# print(record_type)
# print(record_value)
# print(record_id)l= len(record_type)
record_list = {}#存放记录的字典列表
a =0
while a < l:#做成类型对id+host+value的字典列表record_list.setdefault(record_type[a],[]).append(record_id[a])record_list.setdefault(record_type[a],[]).append(record_host[a])record_list.setdefault(record_type[a],[]).append(record_value[a])a+=1# print(record_list)
# print(record_list['AAAA'][0 ])def update_ipv6(ipv6,record_list,host):  #更新ipv6记录(ipv6你的ipv6地址,host就是子域名留空不加)update_data['record_id'] = record_list['AAAA'][0]update_data['settings[host]'] = hostupdate_data['settings[record]'] = ipv6print(update_data)response = requests.post(url,headers=headers,data=update_data)try:if response.json()['status'] == 1:print('修改成功')print(response.status_code)else :print(response.text)print('失败,状态码错误')except:print('失败,停止运行')exit()def add_ipv6(ipv6,host): #ipv6你的ipv6地址,host就是子域名留空不加add_ipv6_data['recordType']= 'AAAA'update_data['settings[host]'] = hostupdate_data['settings[record]'] = ipv6print(add_ipv6_data)response = requests.post(url,headers=headers,data=add_ipv6_data)try:if response.json()['status'] == 1:print('添加成功')print(response.status_code)else :print(response.text)print('失败,状态码错误')except:print('失败,停止运行')exit()if 'AAAA' in record_list:print('检测到已有ipv6地址记录')update_ipv6(ipv6=ipv6,record_list=record_list,host='hhhhh')
else: print('未检测到ipv6记录')add_ipv6(ipv6=ipv6,host='')

在这里插入图片描述

http://www.lryc.cn/news/512539.html

相关文章:

  • nginx中try_files $uri $uri index.html的作用 和 $uri的含义
  • 高转化的Facebook广告文案的秘诀
  • CentOS修改docker镜像存储位置并进行数据迁移
  • ES7+ React/Redux/GraphQL/React-Native snippets 使用指南
  • 【ARM】PK51关于内存模式的解析与区别
  • Linux高级--2.4.5 靠协议头保证传输的 MAC/IP/TCP/UDP---协议帧格式
  • 【每日学点鸿蒙知识】输入法按压效果、web组件回弹、H5回退问题、Flex限制两行、密码输入自定义样式
  • 制造BOM的应用思考
  • 嵌入式硬件杂谈(八)电源的“纹波”到底是什么?
  • 保姆级教程Docker部署ClickHouse镜像
  • 【Rust自学】7.3. 路径(Path)Pt.2:访问父级模块、pub关键字在结构体和枚举类型上的使用
  • 【前端,TypeScript】TypeScript速成(七):数组与函数式编程相结合
  • 第十六届蓝桥杯模拟赛(第一期)(C语言)
  • Linux应用软件编程-多任务处理(管道)
  • 如何在鸿蒙本地模拟器中使用HDC工具
  • 《Vue进阶教程》第三十一课:ref的初步实现
  • C语言初阶习题【19】三子棋游戏
  • Linux day 1129
  • 【优化算法】梯度优化算法:一种新的原启发式优化算法算法
  • 内部类(3)
  • svn分支相关操作(小乌龟操作版)
  • rust_shyper
  • HAL 库 HAL_UARTEx_ReceiveToIdle_IT 函数解析
  • 【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享
  • REDIS的集群
  • 酒店管理系统的设计与实现【源码+文档+部署讲解】
  • [论文阅读] (34)ESWA2024 基于SGDC的轻量级入侵检测系统
  • 从社区共识到资本效能:解析SYNBO的去中心化投资协议创新
  • 一、数据库 Sqlite3 资料
  • Passlib库介绍及使用指南