我正在通过从一个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中完成时,它提供了类似的所有详细信息,例如'服务器',' ADDRESS' FQDN&# 39;它的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文件中。
答案 0 :(得分:0)
使用re
或split
:
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)
stdout_data, stderr_data = proc.communicate(0)
fqdn = stdout_data.split(b'Server: ')[1].split(b'\r\n')[0]
o.write('{}\n'.format(fqdn))