2010-11-25 130 views

回答

2

使用任何方法來執行外部命令。在那裏,你可以找到幾個例子: There

+0

我希望能夠訪問NSE腳本API。 – user492554 2010-11-25 03:46:49

0

雖然有some libraries整合的Lua到Python程序,nmap的腳本引擎(NSE)緊密集成到Nmap的掃描儀本身,並不能真正分開。正如Pol提到的那樣,將Nmap作爲外部命令運行是完全可能的,並且可以從輸出中解析腳本結果。

0

是的,我會建議打電話subprocess並調用nmap這種方式。

例如

import subprocess 

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

可以使用python-nmap包爲,

Here是一個例子:

>>> 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}}}}}