2017-12-09 11 views
1

このコードでは、ホスト名、使用されているプロトコル、ポート、およびポートの状態を取得できます。どうすればサービス情報も手に入れることができますか?NMAPサービス情報

for host in nm.all_hosts(): 
    print('----------------------------------------------------') 
    print('Host : %s (%s)' % (host, nm[host].hostname())) 
    print('State : %s' % nm[host].state()) 

    for proto in nm[host].all_protocols(): 
     print('----------') 
     print('Protocol : %s' % proto) 

     lport = list(nm[host][proto].keys()) 
     lport.sort() 
     for port in lport: 
      print('port : %s\tstate : %s' % (port, nm[host][proto][port]['state'])) 
      print('----------') 
+0

は、あなたが「サービス情報」によって何を意味するか、Googleに詳細を与えることができますか? –

+0

そのポートで実行されているサービス。 snmp、httpなどと同じです。 – Tibi

+0

@AhmadNourallah \t そのポートで実行されているサービス。 snmp、httpなどと同じです。 – Tibi

答えて

0

大丈夫よ、私は今どのように完了したのですか! NMAPを使用しているので、nmapはどのサービスがどのポートで動作しているかを教えてくれます。 あなたは、例えばそのようなことで情報を抽出することができます

print('port : %s\tservice : %s' % (port, nm[host][proto][port]['name'])) 
1

あなたはそのような何かをしようと、socketモジュールからgetservbyport機能を使用して、ポートでサービス名を取得できます。

>>> import socket 
>>> socket.getservbyport(80) 
'http' 

情報(または定義)を取得するための明確な方法はありません特定のサービスについてPythonでは、ウェブサイトの検索を試みてください(そして、PythonでAPIを使用するためにAPIを提供します)。

関連する問題