01-扫描-使用nmap端口扫描

本文介绍了一种使用Python和Nmap库进行网络扫描的方法。通过解析命令行参数指定目标主机和端口,该脚本可以扫描并报告指定端口的状态。

Python 2.7.12+ (default, Sep  1 2016, 20:27:38) 

[GCC 6.2.0 20160822] on linux2

Type "help", "copyright", "credits" or "license" for more information.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
本文转自文东会博客51CTO博客,原文链接http://blog.51cto.com/hackerwang/1906804如需转载请自行联系原作者                                                                                          谢文东666


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值