如何使用dnspython创建PTR DNS记录并添加到反向解析区域
可以通过dnspython库创建PTR DNS记录,你的问题主要出在记录名和记录值的格式错误,修正方案如下:
核心错误点
- 你初始化
dns.update.Update时指定的区域是22.113.170.in-addr.arpa.,该区域对应170.113.22.0/24网段,区域下的PTR记录仅需填写IP的最后一段(即26)作为记录名即可,不需要填写全域名或完整IP - 你填写的PTR目标域名
new-fqdn-please-work.com末尾没有加根点.,DNS服务器会默认拼接当前区域后缀,最终生成错误的记录值new-fqdn-please-work.com.22.113.170.in-addr.arpa.
修正后代码示例
import dns.update import dns.query import dns.rcode DNS_SERVER_ADDRESS = "你的DNS服务器地址" # 初始化更新对象,指定反向区域 update = dns.update.Update('22.113.170.in-addr.arpa.') # 仅填写IP最后一段作为记录名,PTR值末尾加根点 update.add('26', 300, 'PTR', 'new-fqdn-please-work.com.') # 发送更新请求并获取响应 response = dns.query.tcp(update, DNS_SERVER_ADDRESS, timeout=5) # 打印返回状态码判断结果,NOERROR表示更新成功 print("更新结果:", dns.rcode.to_text(response.rcode()))
其他常见排查项
- 确认DNS服务器已配置动态更新权限,允许你运行代码的主机IP发起更新请求
- 如果DNS服务器启用了TSIG校验,需要在初始化
dns.update.Update时传入keyring参数指定校验密钥 - 若返回状态码为
REFUSED说明权限不足,NOTZONE说明记录不属于当前指定的反向区域,FORMERR说明请求格式错误
内容的提问来源于stack exchange,提问作者yAm
相关产品推荐
相关产品推荐

