python——端口扫描器

环境:python 3.6.7

# -*- coding: utf-8 -*-
import socket
import threading
import argparse

lock = threading.Lock()
openNum = 0
threads = []

def portscan(ip, port):
	global openNum
	try:
		s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		s.connect((ip, port))
		lock.acquire()
		openNum = openNum + 1
		print('[+] %d open' %port)
		lock.release()
		s.close()
		
	except:
		pass
		
def main():
	parse = argparse.ArgumentParser()
	parse.add_argument('-H', dest = 'ip', type = str)
	args = parse.parse_args()
	ip = args.ip
	socket.setdefaulttimeout(3)
	
	for port in range(1, 1024):
		t = threading.Thread(target = portscan, args = (ip, port))
		threads.append(t)
		t.start()
		
	for t in threads:
		t.join()
	
	print('[*] The host:%s scan is complete!' %(ip))
	print('[*] A total of %d open port ' %(openNum))
	
if __name__ == '__main__':
	main()

猜你喜欢

转载自blog.csdn.net/weixin_43915762/article/details/88109804