使用dnspython库,我有这个简单的代码,给定DNS,我可以查询一个域名。我需要获取DNS服务器的区域名称。例如,如果我有一个名为com的区域的专用IP 192.168.4.5,而不是8.8.8.8,并且有问题的服务器是a.com。
如何获取作为查询区域的DNS的结果的com?
import dns.resolver
resolver = dns.resolver.Resolver()
resolver.nameservers = ['8.8.8.8']
def myQuery(domain, records):
for r in records:
try:
response = resolver.query(domain, r)
for rData in response:
domainIP = str(rData)
print(domainIP)
break # we only need one IP
except Exception as e:
print(e)
myQuery("google.com","A")发布于 2018-06-02 13:19:06
听起来你在找反向IP地址。
您有IP,但您想要名称。如果是这样,那么您正在寻找PTR类型记录(https://en.wikipedia.org/wiki/Reverse_DNS_lookup)。PTR记录如下所示:
5.4.168.192.in-addr.arpa。
您不必知道这一点,因为有一个名为reversername的dns-python助手函数可以从一个IP地址为您生成这些名称。以下是8.8.8.8的反向IP查找示例:
>>> from dns import reversename, resolver
>>>
>>> rev_name = reversename.from_address('8.8.8.8')
>>> reversed_dns = str(resolver.query(rev_name,"PTR")[0])
>>> print reversed_dns
google-public-dns-a.google.com.为了让它在您的专用服务器上工作,在向DNS注册计算机时,您需要确保您或您的系统正在添加/创建PTR记录。假设您的DNS中有PTR记录,那么这对您来说应该是有效的:
from dns import reversename, resolver
rev_name = reversename.from_address('192.168.4.5')
reversed_dns = str(resolver.query(rev_name,"PTR")[0])
print(reversed_dns)https://stackoverflow.com/questions/50653590
复制相似问题