#coding=utf-8
#!/usr/bin/env python
import nmap
import optparse
def nmapscan(tgthost,tgtport):
'''#建立nmap掃瞄器,初始化portscanner模組
#class portscanner()
# __init__(self, nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', '/opt/local/bin/nmap'))
#初始化時先檢測系統中是否存在nmap版本,根據nmap_search_path中字串進行搜尋,無返回值。
'''nmscan = nmap.portscanner() #建立乙個portscanner()類物件
'''#掃瞄指定主機
#scan(self, hosts='127.0.0.1', ports=none, arguments='-sv', sudo=false)
#hosts 主機
#ports 埠
#arguments 掃瞄引數
#sudo
#返回值為目標掃瞄結果列表
'''nmscan.scan(tgthost,tgtport) #呼叫portscanner類的scan()函式,將目標和埠作為引數輸入並進行nmap掃瞄
#輸出掃瞄結果中的狀態資訊
state=nmscan[tgthost]['tcp'][int(tgtport)]['state']
print ("[*] " + tgthost + " tcp/"+tgtport +" "+state)
def main():
parser = optparse.optionparser('usage %prog ' + '-h -p ')
parser.add_option('-h', dest='tgthost', type='string', help='specify target host')
parser.add_option('-p', dest='tgtport', type='string', help='specify target port[s] separated by comma')
(options, args) = parser.parse_args()
tgthost = options.tgthost
######這段**支援以逗號分割及以-分割的埠範圍
tgtports =
tgtports_cache = str(options.tgtport).split(',')
i = int(len(tgtports_cache))
for m in range( 0,i ):
tgtports_split = str(tgtports_cache[m]).split('-')
if(len(tgtports_split) < 2):
tgtports.extend(tgtports_split)
#print(tgtports)
else:
for n in range(int(tgtports_split[0]),int(tgtports_split[1])+1):
#print(tgtports)
######以下列表是你需要掃瞄的埠列表
#tgtports = str(options.tgtport).split(',')
if (tgthost == none) | (tgtports[0] == none):
print (parser.usage)
exit(0)
for tgtport in tgtports:
nmapscan(tgthost, tgtport)
if __name__ == '__main__':
main()
Python使用nmap進行埠掃瞄
python 3.x版本的nmap python 2.x版本的nmap 先cd進入到解壓的nmap裡面 e python python nmap 0.1.4 python nmap 0.1.4 再執行乙個安裝的操作 注意路徑 e python python nmap 0.1.4 python nma...
Nmap 05 Nmap埠探測技巧
目錄 1.實際場景 2.埠探測技巧 在實際環境中,當系統管理員對裝置進行管理時,或者滲透測試人員對裝置進行檢測時,並不一定對所有的服務進行操作,極有可能是對某個或者某個範圍內的服務進行檢測。如果對所有服務進行探測,就會出現耗時長,費力不討好的情況。針對此,我們很有必要了解如何使用nmap來更加靈活的...
Nmap埠探測技巧
在實際環境中,當系統管理員對裝置進行管理時,或者滲透測試人員對裝置進行檢測是,並不一定需要對所有的服務進行操作。極有可能是對某個或某個範圍的服務進行檢測。如果不管什麼情況都對所有服務進行探測,會出現耗時長,費力不討好的情況。針對這種情況,可以使用nmap來對服務進行更加靈活的探測,避免全埠探測對伺服...