nslookup在python中使用服务器替代

时间:2018-11-20 19:58:11

标签: python windows nslookup

我正在寻找nslookup的python替代品。

其他消息来源将我指向socket.getaddrinfo()。但是,这似乎不允许我指定用于解析主机名的服务器,nslookup支持并且我需要该主机名。

exampleFunction

这是我必须能够通过“ coolserver”进行查找的要求。这是C:\Users\Administrator>nslookup 10.0.11.6 coolserver Server: coolserv.coolserver.com Address: 10.0.1.1 Name: the-host-name-i-want.blah.com Address: 10.0.11.6 或任何其他python库能够提供的功能吗?

我知道我可以直接通过子进程调用nslookup。

编辑:

如上所述,这不是python module for nslookup

的副本

据我所知,socket不允许您通过服务器路由请求。我需要知道“此服务器认为我的主机名是什么”。不是“我的本地主机名是什么”。

1 个答案:

答案 0 :(得分:1)

您需要创建解析器对象并将解析器设置为要使用的DNS服务器:

from dns import *
resolver = resolver.Resolver()
resolver.nameservers = ['8.8.8.8']
a = resolver.query('duckduckgo.com','A')
a.rrset.items[0].address #'54.241.2.241'

要执行反向查找,请执行以下操作:

r =reversename.from_address('50.18.200.106')
ra = resolver.query(r,'PTR')
ra.rrset.items[0].to_text() # 'ec2-50-18-200-106.us-west-1.compute.amazonaws.com.'

注意ec2-50-18-200-106.us-west-1.compute.amazonaws.com是duckduckgo.com网络服务器。

您可能需要安装dnspython。