python多线程扫描端口示例
python多线程扫描端口示例
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:#-*-coding:cp936-*-importsocketfromthreadingimportThread,acti...

复制代码 代码如下:

# -*- coding: cp936 -*-

import socket

from threading import Thread,activeCount,Lock

from time import ctime

mutex = 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

localhost135

localhost1028

localhost8048

localhost8080

localhost8181

localhost8730

localhost12040

localhost12897

localhost18040

localhost18611

''''''Tue Jan 14 10:04:58 2014

localhost135

localhost1028

localhost8048

localhost8080

localhost8181

localhost12897

localhost18040

localhost18611

'''

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新python学习
热门python学习
脚本专栏子分类