首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于nslookup的python模块

用于nslookup的python模块
EN

Stack Overflow用户
提问于 2012-09-06 17:58:34
回答 9查看 69.3K关注 0票数 34

有没有一个python模块和nslookup做同样的事情?我计划使用nslookup来挖掘一些关于要报废的URL的域的信息。我知道我可以使用os.sys来调用nslookup,但我只是想知道是否已经有一个python模块来实现这一点。提前感谢!

EN

回答 9

Stack Overflow用户

发布于 2013-11-13 16:37:04

我使用了以下代码:

代码语言:javascript
复制
import socket

ip_list = []
ais = socket.getaddrinfo("www.yahoo.com",0,0,0,0)
for result in ais:
  ip_list.append(result[-1][0])
ip_list = list(set(ip_list))

或者使用这样的理解:

代码语言:javascript
复制
ip_list = list({addr[-1][0] for addr in socket.getaddrinfo(name, 0, 0, 0, 0)})
票数 47
EN

Stack Overflow用户

发布于 2013-02-18 08:40:19

您需要使用DNSPython

代码语言:javascript
复制
import dns.resolver

answers = dns.resolver.query('dnspython.org', 'MX')
for rdata in answers:
    print 'Host', rdata.exchange, 'has preference', rdata.preference
票数 18
EN

Stack Overflow用户

发布于 2015-08-01 01:13:48

问题是socket.gethostbyname()只返回一个ip地址。nslookup会返回尽可能多的内容。我使用:

代码语言:javascript
复制
import subprocess

process = subprocess.Popen(["nslookup", "www.google.com"], stdout=subprocess.PIPE)
output = process.communicate()[0].split('\n')

ip_arr = []
for data in output:
    if 'Address' in data:
        ip_arr.append(data.replace('Address: ',''))
ip_arr.pop(0)

print ip_arr

它将打印:

代码语言:javascript
复制
['54.230.228.101', '54.230.228.6', '54.230.228.37', '54.230.228.80', '54.230.228.41', '54.230.228.114', '54.230.228.54', '54.230.228.23']
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12297500

复制
相关文章

相似问题

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