美文网首页
python 端口

python 端口

作者: g0 | 来源:发表于2017-11-28 14:10 被阅读17次
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
        ```

相关文章

网友评论

      本文标题:python 端口

      本文链接:https://www.haomeiwen.com/subject/deasbxtx.html