设为首页 加入收藏

TOP

Python编写类似nmap的扫描工具(五)
2017-10-10 21:05:51 】 浏览:2478
Tags:Python 编写 类似 nmap 扫描工具
kt = ans.res[0][1]
            if first_respons_pkt[IP].src not in Port_Scan.udp_port_dict:
                Port_Scan.udp_port_dict[first_respons_pkt[IP].src] = [first_respons_pkt[UDPerror].dport]
            else:
                Port_Scan.udp_port_dict[first_respons_pkt[IP].src].append(first_respons_pkt[UDPerror].dport)


def parse_opt():
    '''
    @说明:通过argparse模块解析程序传入的参数
    @return:args
    '''
    usage = 'python %(prog)s <-p ping扫描类型> <-s 端口发现类型> [-t target] [--port ports]'
    description = '简单扫描工具,可以进行存活扫描及端口扫描.\n' \
                  '存活扫描包括:ARP扫描、ICMP扫描、TCP扫描、UDP扫描.\n' \
                  '端口扫描包括:TCP SYN扫描、TCP ACK扫描、TCP FIN扫描.'
    epilog = '以上做为说明,祝好运!'
    parser = argparse.ArgumentParser(usage=usage,description=description,epilog=epilog,version='v1.0')


    target_group = parser.add_argument_group('target group',description='用于设置IP、PORT参数')
    target_group.add_argument('--target',dest='target',action='store',
                              help='target为IP或IP段,如192.168.1.1,192.168.1.x,或192.168.1.1-254')
    target_group.add_argument('--port',dest='port',action='store',
                              help='port为待扫描的端口,如21,80,...或21-80')


    ping_group = parser.add_argument_group('ping group',description='用于开启存活扫描相关选项')
    ping_group.add_argument('-p',dest='ping',action='store_true',help='开启存活扫描')
    ping_group.add_argument('--ARP',dest='ARP',action='store_true',help='启动ARP扫描')
    ping_group.add_argument('--ICMP',dest='ICMP',action='store_true',help='启动ICMP扫描')
    ping_group.add_argument('--TCP',dest='TCP',action='store_true',help='启动TCP扫描')
    ping_group.add_argument('--UDP',dest='UDP',action='store_true',help='启动UDP扫描')


    port_scan_group = parser.add_argument_group('port scan group',description='用于开启端口扫描相关选项')
    port_scan_group.add_argument('-s',dest='scan',action='store_true',help='开启端口扫描')
    port_scan_group.add_argument('--SYN',dest='SYN',action='store_true',help='开启SYN扫描')
    port_scan_group.add_argument('--ACK',dest='ACK',action='store_true',help='开启ACK扫描')
    port_scan_group.add_argument('--FIN',dest='FIN',action='store_true',help='开启FIN扫描')
    port_scan_group.add_argument('--UPORT', dest='UPORT', action='store_true', help='开启UDP端口扫描')


    utils_group = parser.add_argument_group('utils group',description='用于开启扫描过程中的一些实用选项')
    utils_group.add_argument('--timeout',dest='timeout',action='store',type=float,help='设置发包超时时间,默认0.5秒')
    utils_group.add_argument('--retry',dest='retry',action='store',type=int,help='设置发包重试次数,默认不重试')


    args = parser.parse_args()
    if not args.p

首页 上一页 2 3 4 5 6 7 8 下一页 尾页 5/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python3 基本数据类型 下一篇Python3基本语法简述

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目