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

importnmap

importoptparse

defnmapScan(tgtHost,tgtPort):

nmScan=nmap.PortScanner()

nmScan.scan(tgtHost,tgtPort)

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

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

defmain():

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=str(options.tgtPort).split(',')

if(tgtHost==None)|(tgtPorts[0]==None):

print(parser.usage)

exit(0)

fortgtPortintgtPorts:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值