python使用nmap端口扫描,pythonnmap端口扫描,第一版:只支持以逗号


第一版:只支持以逗号分隔的端口,不支持端口范围

Firstly: sudo apt-get install nmap

Secondly:pip install python-nmap

Thirdly:copy the code bellow to a file like scan_network.py

#!/usr/bin/env python

import nmap

import optparse


def nmapScan(tgtHost,tgtPort):

nmScan = nmap.PortScanner()

nmScan.scan(tgtHost,tgtPort)

state=nmScan[tgtHost][‘tcp‘][int(tgtPort)][‘state‘]

print ("[*] " + tgtHost + " tcp/"+tgtPort +" "+state)


def main():

parser = optparse.OptionParser(‘usage %prog ‘+\

‘-H <target host> -p <target port>‘)

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


Forthly:chmod +x scan_network.py

fifthly: ./scan_network.py -H 192.168.1.1 -p 22,23


第二版:支持以逗号分割及以-分割的端口范围

#!/usr/bin/env pythonimport nmapimport optparsedef nmapScan(tgtHost,tgtPort): nmScan = nmap.PortScanner() nmScan.scan(tgtHost,tgtPort) state=nmScan[tgtHost][‘tcp‘][int(tgtPort)][‘state‘] print ("[*] " + tgtHost + " tcp/"+tgtPort +" "+state)def main(): parser = optparse.OptionParser(‘usage %prog ‘+ ‘-H <target host> -p <target port>‘) 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######this code bellow is to support scan port range like 66-88 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): tgtPorts.append(str(n)) #print(tgtPorts)######above the tgtPorts are the ports list you want to scann #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()

技术分享

本文出自 “净空蓝星” 博客,请务必保留此出处http://jingkonglanxing.blog.51cto.com/1152128/1906859

python使用nmap端口扫描

相关内容

    暂无相关文章

评论关闭