zoukankan      html  css  js  c++  java
  • 端口扫描器--利用python的nmap模块

    安装nmap模块挺麻烦的,搞了半天

    不仅要安装pip install nmap

    还要sudo apt install nmap

    给出代码,没有设多线程,有点慢,注意端口的类型转换,搞了很久

    #!/usr/bin/env python
    # -*- coding:UTF-8 -*-
    import optparse
    import nmap
    
    #usage:python scan.py -H 119.75.217.26 -p 3306 80 22
    
    def nampScan(tgtHost,tgPort):
        nmScan = nmap.PortScanner()
        try:
            result = nmScan.scan(tgtHost,str(tgPort))
            state =  result['scan'][tgtHost]['tcp'][int(tgPort)]['state']
            service = result['scan'][tgtHost]['tcp'][int(tgPort)]['product']
            version = result['scan'][tgtHost]['tcp'][int(tgPort)]['version']
            print "[*]" + tgtHost + " tcp/" + str(tgPort) + " " + state + " " + service + " " + version
        except:
            pass
    
    
    def main():
        parse = optparse.OptionParser('usage %prog -H <targethost> -p <targetport>')
        parse.add_option('-H',dest = 'tgtHost',type = 'string',help = 'specify target host')
        parse.add_option('-p',dest = 'tgtPort',type = 'int',help = 'specify target port')
        (option,args) = parse.parse_args()
        tgtHost = option.tgtHost
        tgtPort = str(option.tgtPort)
        args.append(tgtPort)
        if(tgtHost == None)|(tgtPort == None):
            print "[-]usage : python scan.py -H 192.168.2.3 -p 3306 80 22"
            exit(0)
        for tgport in args:
            nampScan(tgtHost,tgport)
    
    if __name__ == '__main__':
        main()
  • 相关阅读:
    莫队模板
    CF600E Lomsat gelral
    JZOJ 捕老鼠
    JZOJ 4896. 【NOIP2016提高A组集训第16场11.15】兔子
    JZOJ 4895【NOIP2016提高A组集训第16场11.15】三部曲
    双端队列xLIS问题
    最大K段和
    你真的了解ES6的promise吗?
    JS对象和数组深浅拷贝总结②
    当前页码删除唯一数据后加载前一页内容
  • 原文地址:https://www.cnblogs.com/kunspace/p/10599256.html
Copyright © 2011-2022 走看看