我正在使用位于(http://xael.org/norman/python/python-nmap/)的python nmap解析器。它提供了一个示例代码片段,我在.py脚本中使用了该片段以进行例行检查,从而使一些任务自动化。但是,我在“第25行”上收到错误消息。有人可以帮帮我吗..?
import nmap
nm = nmap.PortScanner()
nm.scan('127.0.0.1', '22-2223')
nm.command_line()
nm.scaninfo()
for host in nm.all_hosts():
print('----------------------------------------------------')
print('Host : %s (%s)' % (host, nm[host].
print('State : %s' % nm[host].state())
for proto in nm[host].all_protocols():
print('----------')
print('Protocol : %s' % proto)
lport = nm[host][proto].keys()
lport.sort()
for port in lport:
print ('port : %s\tstate : %s' % (port, nm[host][proto][port]['state']))
print('----------------------------------------------------')
错误以下:
root@server:~/python/python# python MyApp.py
----------------------------------------------------
Host : 127.0.0.1 (localhost)
State : up
----------
Protocol : addresses
Traceback (most recent call last):
File "MyApp.py", line 25, in <module>
print ('port : %s\tstate : %s' % (port, nm[host][proto][port]['state']))
TypeError: string indices must be integers
root@damnation:~/python/python#
第25行是从底部开始的倒数第二行。'端口:%s \ tstate:%s'%(端口,nm [host] [proto] [port]'。
任何建议都很好。谢谢你 。
我发现在lport参数中指定proto可使for bundled循环正确查看dict中的字符串。以下是允许python-nmap解析器正常运行的正确脚本。显然,for捆绑包仅适用于TCP,但是for捆绑包的另一个参数足以满足UDP要求。
import nmap # import nmap.py module
nm = nmap.PortScanner()
host = '127.0.0.1'
nm.scan(host, '1-1024')
nm.command_line()
nm.scaninfo()
for host in nm.all_hosts():
print('----------------------------------------------------')
print('Host : %s (%s)' % (host, nm[host].hostname()))
print('State : %s' % nm[host].state())
print('----------------------------------------------------')
for proto in nm[host].all_protocols():
print('----------')
print('Protocol : %s' % proto)
lport = nm[host]['tcp'].keys() #<------ This 'proto' was changed from the [proto] to the ['tcp'].
lport.sort()
for port in lport:
print('----------------------------------------------------')
print('port : %s\tstate : %s' % (port, nm[host][proto][port]['state']))
print('----------------------------------------------------')
我还不是Python专家,还得到了朋友的一些帮助(Tx AdriaanDL :))。但是,它确实可以解决nmap.py开发人员在其网站上遇到的此示例所遇到的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句