手机
当前位置:查字典教程网 >脚本专栏 >python >python多线程扫描端口示例
python多线程扫描端口示例
摘要:复制代码代码如下:#-*-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不带重复的全排列代码

python迭代器的使用方法实例

python sys模块sys.path使用方法示例

python文件比较示例分享

python装饰器使用方法实例

Python yield使用方法示例

python聊天程序实例代码分享

Python多线程学习资料

python函数返回多个值的示例方法

使用python实现扫描端口示例

精品推荐
分类导航