Я играю с парсером nmap для python, расположенным по адресу (http://xael.org/norman/python/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[хост][прото][порт]'.
Будем признательны любому совету. благодарю вас .
print('port : '+port+'\tstate : '+ nm[host][proto][port]['state'])
? Что это за распечатка? Я предполагаю, что ваш объект состояния не является строкой. - person hd1   schedule 11.02.2014