zoukankan      html  css  js  c++  java
  • 端口扫描器

    多线程版

    import optparse
    import socket
    from socket import *
    def connScan(tgtHost,tgtPort):
        try:
            connSkt=socket(AF_INET,SOCK_STREAM)
            connskt.connect(tgtHost,tgtPort)
            connSkt.send('Violenpython
    ')
            results=connSkt.recv(100)
            screenlock.acquire()
            print('[+] %d/tcp open' %tgtPort)
            print('[+]'+ str(results))
            #connSkt.close()
        except:
            screenlock.qcquire()
            print('[+] %d/tcp close' % tgtPort)
        finally:
            screenlock.acquire()
            connSkt.close()
    def portScan(tgtHost,tgtPorts):
        try:
            tgtip=gethostbyname(tgthost)
        except:
            print("[-] cannot resolve '%s' : unknown host" %tgtHost)
            return
        try:
            tgtname=gethostbyaddr(tgtip)
            print('
    [+] scan results for: '+tgtname[0])
        except:
            print('
    [+] scan results for:'+tgtip)
        setdefaulttimeout(1)
        for tgtPort in tgtPorts:
            t=thrad(target=connScan,args=(tgthost,int(tgtPort)))
            t.start()
    def main():
        parser=optparse.OptionParser('"usage%prog "+
        "-H<target host> -p <target port>"')
        parser.add_option('-H',des='tgthost',type='string', 
        help ='specify target host')
        parser.add_option('-P',des='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)
        portScan(tgthost,tgtports)
    if __name__=='_main__':
        main()

    nmap版

    # coding=UTF-8 
    import optparse 
    import nmap
    def nmapScan(tgtHost, tgtPort):    
        nmScan = nmap.PortScanner()    
        results = nmScan.scan(tgtHost, tgtPort)
        state = results['scan'][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')    
        (options, args)=parser.parse_args()   
        tgtHost = options.tgtHost    
        tgtPort = options.tgtPort    
        args.append(tgtPort)    
        if (tgtHost == None) | (tgtPort == None):        
            print('[-] You must specify a target host and port[s]!')        
            exit(0)    
            for tgport in args:        
                nmapScan(tgtHost, tgport) 
    if __name__ == '__main__':
        main()
  • 相关阅读:
    HTML+CSS简单实现导航栏二级下拉菜单
    原创 | 我的个人微信公众号
    原创 | 喂,在吗?
    NodeJs实现邮箱验证
    JS排序算法(二)冒泡排序
    JS排序算法(一) 快速排序
    前端常见的布局方式
    JS继承方式
    前端Node实现简易的文件上传下载
    原生js实现深度克隆
  • 原文地址:https://www.cnblogs.com/kk328/p/11173052.html
Copyright © 2011-2022 走看看