• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

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

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 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    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 = s<div style="color:transparent">本文来源gaodai.ma#com搞##代!^码网(</div>tr(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()

以上就是python使用nmap端口扫描的两种方法的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python使用nmap端口扫描的两种方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址