2010-11-25 9 views

答えて

2

外部コマンドを実行する方法を使用してください。 There

+0

私は、NSEスクリプトAPIにアクセスしたいと考えていました。 – user492554

0

some librariesはPythonプログラムへのLuaを組み込むためにありますが、Nmapのスクリプトエンジン(NSE)がしっかりNmapのスキャナ自体に統合され、かつ実際に分離することはできません。そこにはいくつかの例を見つけることができます。 Polが述べたように、Nmapを外部コマンドとして実行することは完全に可能であり、スクリプト結果は出力から解析できます。

0

ええ、私はsubprocessを呼び出し、nmapをそのように呼び出すことをお勧めします。

import subprocess 

subprocess.call('nmap', '-sS', '127.0.0.1') 
1

あなたは

Hereは一例であり、そのためにpython-nmapパッケージを使用することができます。

>>> import nmap 
>>> nm=nmap.PortScanner() 
>>> nm.scan('192.168.1.212', '445', 
     arguments='--script=/usr/local/share/nmap/scripts/smb-os-discovery.nse') 

は出力:

{'nmap': {'command_line': u'nmap -oX - -p 445 --script=/usr/local/share/nmap/scripts/smb-os-discovery.nse 192.168.1.212', 
    'scaninfo': {u'tcp': {'method': u'syn', 'services': u'445'}}, 
    'scanstats': {'downhosts': u'0', 
    'elapsed': u'0.28', 
    'timestr': u'Fri Aug 31 21:33:19 2012', 
    'totalhosts': u'1', 
    'uphosts': u'1'}}, 
'scan': {u'192.168.1.212': {'hostname': u'BookLife', 
    'script': {u'smb-os-discovery': u'\n OS: Unix (Samba 3.2.5)\n Computer name: localhost\n Domain name: localdomain\n FQDN: localhost.localdomain\n NetBIOS computer name: \n System time: 2012-07-19 09:27:12 UTC+7\n'}, 
    'status': {'reason': u'arp-response', 'state': u'up'}, 
    u'tcp': {445: {'name': u'microsoft-ds', 
    'product': None, 
    'reason': u'syn-ack', 
    'state': u'open', 
    'version': None}}}}} 
関連する問題