ホームページ  >  記事  >  バックエンド開発  >  Python マルチスレッド ポート スキャンの例

Python マルチスレッド ポート スキャンの例

WBOY
WBOYオリジナル
2016-06-17 08:22:191400ブラウズ

代码如下:


# -*-coding: cp936 -*-
インポートソケット
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()
インジケーター = client.connect_ex((self.ip,self.port))
if mutex.acquire(1):
if インジケータ == 0:
que.append(self.ip+'t'+str(self.port))
else:
自分自身を印刷します。 ip,'t',str(self.port),'不可达'
mutex.release()
ただし:
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() 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()

True の場合:
activeCount() 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 2014 07:12:53
localhost 135
localhost 1028
localhost 8048
localhost 8080
localhost 8181
localhost 8730
localhost 120 40
localhost 12897
localhost 18040
localhost 18611
''''''火曜日 Jan 14 2014 10:04:58
localhost 135
localhost 1028
localhost 8048
localhost 8080
localhost 8181
localhost 12897
localhost 18040
localhost 18611
'''

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。