NMAP扫描器

NMAP提供了ACK,RST,FIN或者SYN-ACK扫描。
创建一个PortScanner()类对象,用这个对象完成扫描操作。
同时创建的对象有一个scan()函数,进行基本的Nmap扫描。

#coding=utf-8

#一个Nmap的端口扫描器

import nmap
import argparse
def nampScan(tgtHost,tgtPort):
    '''创建一个PortScanner()类对象,使用scan()函数完成扫描工作'''
    nmScan = nmap.PortScanner()
    nmScan.scan(tgtHost,tgtPort)
    state = nmScan[tgtHost]['tcp'][int(tgtPort)]['state']
    print tgtHost+" tcp/"+tgtPort+" "+state

def main():
    '''程序的参数解析,调用函数等'''
    parser = argparse.ArgumentParser()
    parser.add_argument('-H',dest="tgtHost")
    parser.add_argument('-p',dest="tgtPort")
    args = parser.parse_args()
    tgtHost = args.tgtHost
    tgtPorts = args.tgtPort.split(",")
    if (tgtHost==None) | (tgtPorts[0]==None):
        print "you must specify a target host and post"
    print tgtHost
    print tgtPorts
    for tgtPort in tgtPorts:
        nampScan(tgtHost,tgtPort)

if __name__=="__main__":
    main()```

你可能感兴趣的:(NMAP扫描器)