目前我有一个包含多个IP的文本文件我正在尝试从使用nslookup(下面的代码)给出的信息集中仅提取域名
with open('test.txt','r') as f:
for line in f:
print os.system('nslookup' + " " + line)
到目前为止,它可以从第一个IP中获取所有信息。我无法通过第一个IP,但我目前正在尝试清理仅收到IP域名的信息。有没有办法做到这一点,或者我需要使用不同的模块
答案 0 :(得分:0)
import socket
name = socket.gethostbyaddr(‘127.0.0.1’)
print(name) #to get the triple
print(name[0]) #to just get the hostname
答案 1 :(得分:0)
与IgorN一样,我不会进行系统调用以使用nslookup
;我也会使用socket
。但是,IgorN分享的答案提供了主机名。请求者要求域名。见下文:
import socket
with open('test.txt', 'r') as f:
for ip in f:
fqdn = socket.gethostbyaddr(ip) # Generates a tuple in the form of: ('server.example.com', [], ['127.0.0.1'])
domain = '.'.join(fqdn[0].split('.')[1:])
print(domain)
假设test.txt
包含以下行,该行解析为server.example.com
的FQDN:
127.0.0.1
这将生成以下输出:
example.com
这是(我相信)OP的愿望。