首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dnspython中,给定DNS IP,如何获取DNS区域名称

在dnspython中,给定DNS IP,如何获取DNS区域名称
EN

Stack Overflow用户
提问于 2018-06-02 12:46:59
回答 1查看 2.2K关注 0票数 0

使用dnspython库,我有这个简单的代码,给定DNS,我可以查询一个域名。我需要获取DNS服务器的区域名称。例如,如果我有一个名为com的区域的专用IP 192.168.4.5,而不是8.8.8.8,并且有问题的服务器是a.com

如何获取作为查询区域的DNS的结果的com

代码语言:javascript
复制
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")
EN

回答 1

Stack Overflow用户

发布于 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查找示例:

代码语言:javascript
复制
>>> 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记录,那么这对您来说应该是有效的:

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50653590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档