python 端口

import socket,time,thread
import urlparse
import datetime

from libs.Conn_scan import Mongo
from multiprocessing import Process, Queue, Lock, Pool

class PortScan:
    def __init__(self, ip, url):
        socket.setdefaulttimeout(3)
        self.lock = thread.allocate_lock()
        self.ip = ip
        self.url = url
        try:
            for i in range(0, 65530):
                thread.start_new_thread(self.socket_port, (ip, int(i)))
        except:
            pass
        time.sleep(4)

    def socket_port(self,ip, port):
        try:
            if port >= 65535:
                print u'port end'
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            result = s.connect_ex((ip, port))
            if result == 0:
                self.lock.acquire()
                print  ip, ':', port, 'open'
                self.lock.release()
                try:
                    Mongo.coll['port'].update({"URL":self.url},
                                              {"$push": {'Port' : str(port) }},
                                              upsert = True)                
                except Exception,e:
                    print e                
                
            s.close()
        except:
            pass
'''
if __name__ == '__main__':
    pool = Pool(processes=10)
    
    with open('10.txt') as f:
        for i in f:
            i = i.strip('\r').strip('\n')
            domain = urlparse.urlparse(i)
            if domain.netloc is None:
                return None
            ip = socket.gethostbyname(domain.netloc)
            pool.apply_async(PortScan, (i.strip().strip('\r').strip('\n'),))
                
    print "Started processes"
    pool.close()
    pool.join()
    print "Subprocess done."

'''
#ip = '211.144.100.38'  
#print "[...] Start scan port -> IP:",ip
##PortScan(ip)

#print "[...] Stop PortScan"

#if __name__== '__main__':
    #IP_list = Mongo.coll['url_ip'].find()
    #for i in IP_list:
        #print i['IP']
        #try:
            #if i['IP']:
                #PortScan(i['IP'], i['URL'])
                
        #except Exception,e:
            #pass
        ```
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容