0
Я следующий Nmap вывод, в формате XML:Извлечение данных из формата XML в Python
<ports><extraports state="closed" count="991">
<extrareasons reason="conn-refused" count="991"/>
</extraports>
<port protocol="tcp" portid="22"><state state="open" reason="syn-ack" reason_ttl="0"/><service name="ssh" method="table" conf="3"/></port>
<port protocol="tcp" portid="25"><state state="open" reason="syn-ack" reason_ttl="0"/><service name="smtp" method="table" conf="3"/></port>
<port protocol="tcp" portid="139"><state state="open" reason="syn-ack" reason_ttl="0"/><service name="netbios-ssn" method="table" conf="3"/></port>
<port protocol="tcp" portid="443"><state state="open" reason="syn-ack" reason_ttl="0"/><service name="https" method="table" conf="3"/></port>
Я хочу, чтобы получить номера портов, которые открыты:
print 'Port Number: '+host.find('ports').find('port').get('portid')
Но результат просто 22
,
Как я могу получить результаты:
22
25
139
443
Большое спасибо :) – MLSC
@MortezaLSC, итерируем 'port' элементы:' для порта в root.findall ('.// порт'): печать ('port: {}'. format (port.get ('portid'))) ' – falsetru
Мне очень жаль ... но я' state = [port.get ('state') для состояния в root.findall ('.// port')] 'для проверки состояний, а затем он не возвращает меня' open' и говорит 'none' – MLSC