Python 3.6.7多线程端口扫描器实现
本文介绍基于Python 3.6.7的端口扫描器实现。通过socket模块建立连接,利用threading模块进行多线程并发扫描,提升效率。代码包含参数解析、超时设置及结果统计,适用于1至1024端口范围的快速检测。
Python端口扫描器实现概述
本文分享了一个使用Python 3.6.7编写的端口扫描器实例,供读者参考学习。
运行该程序的环境要求为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()
感谢阅读,希望本文内容能对您的学习有所帮助,欢迎继续支持本站获取更多技术资源。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













