【发布时间】:2014-12-28 18:05:46
【问题描述】:
我正在尝试打印循环中的第一行。该循环是在解析 Nmap 生成的 XML 文件后生成的。我不想使用 subprocess 并调用 bash 命令来执行此操作,但我不知道该怎么做。这是下面代码中的第二个 for 循环。
from libnmap.parser import NmapParser
rep = NmapParser.parse_fromfile('Linux_int.xml')
for _host in rep.hosts:
host = ', '.join(_host.hostnames)
ip = (_host.address)
print "HostName: ",host,"--", ip
#print _host.os_fingerprinted
host_string = ip
for osmatch in _host.os.osmatches:
os = osmatch.name
accuracy = osmatch.accuracy
print "Operating System Guess: ", os, "Accuracy Detection", accuracy
#print os.splitlines()[0:1]
for services in _host.services:
print services.port, services.protocol, services.state, services.service
server_address = (host_string,services.port)
这是循环生成的输出。
Operating System Guess: Linux 3.7 - 3.9 Accuracy Detection 98
Operating System Guess: Linux 3.8 Accuracy Detection 95
Operating System Guess: AXIS 210A or 211 Network Camera (Linux 2.6) Accuracy Detection 94
Operating System Guess: Netgear DG834G WAP or Western Digital WD TV media player Accuracy Detection 94
Operating System Guess: Linux 3.1 Accuracy Detection 93
Operating System Guess: Linux 3.2 Accuracy Detection 93
Operating System Guess: Linux 3.7 Accuracy Detection 92
Operating System Guess: Linux 3.2.0 Accuracy Detection 91
Operating System Guess: Linux 3.9 Accuracy Detection 91
Operating System Guess: Linux 2.6.32 - 3.6 Accuracy Detection 91
这是正在解析的 XML 文件。
https://www.dropbox.com/s/7me7mxzawmkqj7m/Linux_int.xml?dl=0
【问题讨论】:
-
您不应该使用
os作为变量名。它是内置的。 -
只是
break退出循环。 -
您在寻找
break关键字吗? -
哦。谢谢各位。解决方案非常简单,我现在感觉自己像个空头:)
标签: python linux python-2.7 nmap