【发布时间】:2018-06-04 21:52:51
【问题描述】:
我正在通过从一个 csv 文件中读取主机名来执行 nslookup,并且我想将 FQDN 写入另一个 csv 文件。
这是我的代码:
import subprocess
with open('csv1.csv', 'r') as i, open('csv2.csv', 'w') as o:
for line in i:
if line.strip(): # skips empty lines
proc = subprocess.Popen(["nslookup", line.strip()],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
o.write('{}\n'.format(proc.communicate(0)))
print('Done')
我面临的问题是,当在 cmd->nslookup 中完成时,它会提供类似的所有详细信息,例如“服务器”、“地址”、“FQDN”和 IP 地址 以下是其中一个主机名的示例:
(b'Server: anything.na.com\r\nAddress: 10.3.56.7\r\n\r\nName: ABCD12.na.com\r\nAddress: 10.4.67.8\r\nAliases: abcd12.na.com\r\n\r\n'
我只想将此处的 FQDN 名称提取到 csv 文件中。
【问题讨论】:
-
nslookup不太适合集成到其他程序中。如果您有dig,请尝试dig +short。显而易见的解决方案是使用 Python DNS 解析器,但根本不使用外部实用程序;我喜欢dnspython,虽然参考文档有点吓人。
标签: python python-3.x nslookup