我正在寻找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
不允许您通过服务器路由请求。我需要知道“此服务器认为我的主机名是什么”。不是“我的本地主机名是什么”。
答案 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。