您好,欢迎来到凯特情感。
搜索
您的当前位置:首页python使用nmap端口扫描的两种方法

python使用nmap端口扫描的两种方法

来源:凯特情感
 第一版:只支持以逗号分隔的端口,不支持端口范围

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



######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()

Copyright © 2019- ktwm.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务