如何使用DNSPython添加反向IP记录
我尝试使用DNSPython添加DNS记录 当我像这样设置dns时,它工作得很好:如何使用DNSPython添加反向IP记录,dns,dnspython,bind9,Dns,Dnspython,Bind9,我尝试使用DNSPython添加DNS记录 当我像这样设置dns时,它工作得很好: import dns.resolver import dns.query import dns.reversename import dns.update import dns.rdatatype update = dns.update.Update('test.com') update.replace('a', 3600, dns.rdatatype.A, '10.10.10.10') response =
import dns.resolver
import dns.query
import dns.reversename
import dns.update
import dns.rdatatype
update = dns.update.Update('test.com')
update.replace('a', 3600, dns.rdatatype.A, '10.10.10.10')
response = dns.query.tcp(update, '127.0.0.1')
但是,当我以相同的方式设置反向dns时,它不起作用:
update = dns.update.Update('10.in-addr.arpa')
update.replace('10.10.10.', 3600, dns.rdatatype.PTR, 'a.test.com')
response = dns.query.tcp(update, '127.0.0.1')
我想知道如何成功设置反向dns,Thx~我发现问题:
update.replace('10.10.10.', 3600, dns.rdatatype.PTR, 'a.test.com')
应该是这样,
update.replace('10.10.10', 3600, dns.rdatatype.PTR, 'a.test.com')
但另一个问题是:这种更新反向dns的方法并不总是成功的,有时当我使用“nslookup”进行测试时,它似乎没有添加到dns服务器
更重要的是,当我喜欢:
nslookup 10.10.10.10
Server: 127.0.0.1
Address: 127.0.0.1#53
10.10.10.10.in-addr.arpa name =a.test.com.10.in-addr.arpa.
这不是我想要的,当使用nsupdate添加时,它只显示:
10.10.10.10.in-addr.arpa name =a.test.com.
如何解决此问题?您对update.replace中的“10.10.10”有问题。 它需要是FQDN-“10.10.10.10.in addr.arpa”。 您可以使用以下内容:
import dns.resolver
import dns.query
import dns.reversename
import dns.update
import dns.rdatatype
update = dns.update.Update('test.com')
update.replace('a', 3600, dns.rdatatype.A, '10.10.10.10')
response = dns.query.tcp(update, '127.0.0.1')
获取反向IP
reventry = dns.reversename.from_address('10.10.10.10')
定义要更新的in-addr.arpa区域-我有类子网区域文件(10.in addr.arpa)的.labels[3:]。如果您有C类(addr.arpa中的10.10.10),那么使用.labels[1:]
revzone = ''
revzone = '.'.join(dns.name.from_text(str(reventry)).labels[3:])
并添加操作
raction = dns.update.Update(revzone)
raction.replace(reventry, 3600, dns.rdatatype.PTR, 'a.test.com')
这应该没问题。我自己也遇到过这个问题。
您的姓名末尾缺少一个点:
update.replace('10.10.10', 3600, dns.rdatatype.PTR, 'a.test.com**.**')