Python 3.6.7多线程端口扫描器实现

Owen
Owen
发布时间:2026-10-13 | 8人浏览过
原创

本文介绍基于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()

感谢阅读,希望本文内容能对您的学习有所帮助,欢迎继续支持本站获取更多技术资源。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表