Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > python入门

python多线程扫描端口示例

来源:中文源码网    浏览:129 次    日期:2024-05-09 15:29:37
【下载文档:  python多线程扫描端口示例.txt 】


python多线程扫描端口示例
复制代码 代码如下:# -*- coding: cp936 -*-import socketfrom threading import Thread,activeCount,Lockfrom time import ctimemutex = Lock()
class Loop(Thread): def __init__(self,ip,port,que): Thread.__init__(self) self.ip = ip self.port = port self.que = que
def run(self): global mutex try: client = socket.socket() indicator = client.connect_ex((self.ip,self.port)) if mutex.acquire(1): if indicator == 0: que.append(self.ip+'\t'+str(self.port)) else: print self.ip,'\t',str(self.port),'不可达' mutex.release() except: if mutex.acquire(1): print self.ip,'\t',str(self.port),'不可达' mutex.release()
class Main(Thread): def __init__(self,ip,que): Thread.__init__(self) self.ip = ip self.que = que
def run(self): i = 0 while i < 65536: if activeCount() <= 200: Loop(ip=self.ip,port=i,que=self.que).start() i = i + 1
if __name__ == '__main__': que = [] ip = raw_input('IP=')
main = Main(ip = ip,que = que) main.start()
while True: if activeCount() <= 1 and main.isAlive() == False: break
print '' f = open('portOpen.py','a') f.write("'''") f.write(ctime()+'\n') f.flush() for i in range(0,len(que)): print que[i] f.write('\t'+que[i]+'\n') f.flush() f.write("'''") f.close()
raw_input()
'''Mon Jan 13 07:12:53 2014 localhost 135 localhost 1028 localhost 8048 localhost 8080 localhost 8181 localhost 8730 localhost 12040 localhost 12897 localhost 18040 localhost 18611''''''Tue Jan 14 10:04:58 2014 localhost 135 localhost 1028 localhost 8048 localhost 8080 localhost 8181 localhost 12897 localhost 18040 localhost 18611'''

相关内容