【问题标题】:nslookup using server alternative in pythonnslookup 在 python 中使用服务器替代
【发布时间】:2019-04-23 08:21:22
【问题描述】:

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

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

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

要求我能够通过“coolserver”进行查找。这是socket 或任何其他python 库能够做到的吗?

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

编辑:

如上所述,这不是python module for nslookup的重复项

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

【问题讨论】:

标签: python windows nslookup


【解决方案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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 2019-12-12
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多