zoukankan      html  css  js  c++  java
  • [python]multi thread tcp connect port scanner

    #!/usr/bin/python
    import optparse
    from socket import *
    from threading import *
    screenLock = Semaphore(value=1)
    def connScan(host,port):
        try:
            s = socket(AF_INET,SOCK_STREAM)
            s.connect((host,port))
            screenLock.acquire()
            print '[+] '+str(port)+' open'
        except:
            screenLock.acquire()
            print '[-] '+str(port)+' close'
        finally:
            screenLock.release()
            s.close()
    def portScan(host,ports):
        try:
            ip = gethostbyname(host)
        except:
            print "[-] Cannot resolve '%s':  Unknown host "%host
            return
        try:
            host = gethostbyaddr(ip)[0]
            print '[+] results for host '+host
        except:
            print '[+] results for ip '+ip
        setdefaulttimeout(1)
        for port in ports:
            t = Thread(target=connScan,args=(ip,int(port)))
            t.start()
    def main():
        parser = optparse.OptionParser('usage %prog -H <target host> -p <target port>')
        parser.add_option('-H',dest='host',type='string',help='specify target host')
        parser.add_option('-p',dest='ports',type='string',help='specify target port[s] by comma')
        (options,args) = parser.parse_args()
        host = options.host
        ports = str(options.ports)
        if (host == None) | (ports == None):
            print parser.usage
            exit(0)
        ports = ports.split(",")
        portScan(host,ports)
    if __name__ == "__main__":
        main()
  • 相关阅读:
    Mybatis中的设计模式
    Mybatis的#{}和${}的区别是什么?
    ES的写入速度优化
    康师傅JVM:垃圾回收相关概念(十六)
    i++为什么不是原子操作?
    Zookeeper的watch机制
    LeetCode 1.两数之和
    ESP 8266 引脚图
    Arduino 将 String 转化为 int
    微擎修改 icon.jpg 后项目主页未变
  • 原文地址:https://www.cnblogs.com/co1d7urt/p/2808999.html
Copyright © 2011-2022 走看看