Susan367760/python-port-scanner

GitHub: Susan367760/python-port-scanner

一个使用 Python 标准库构建的多线程 TCP 端口扫描器,通过并发检测开放端口并抓取服务 Banner 来实现网络侦察自动化。

Stars: 0 | Forks: 0

# 多线程端口扫描与 Banner 抓取工具 (Python) ![Python](https://img.shields.io/badge/Python-3.x-blue?logo=python) ![网络安全](https://img.shields.io/badge/Cybersecurity-Network%20Scanning-red) ![网络](https://img.shields.io/badge/TCP/IP-Socket%20Programming-green) ![许可证](https://img.shields.io/badge/License-MIT-yellow) ![状态](https://img.shields.io/badge/Project-Completed-success) 一个基于 Python 的**多线程端口扫描器**,展示了在 **socket 编程、TCP/IP 网络、多线程以及 Banner 抓取**方面的实践知识。该应用程序可以扫描目标主机,识别开放的 TCP 端口,并尝试获取运行在这些端口上的服务 Banner。 # 概述 端口扫描是网络侦察阶段执行的首要步骤之一。安全专业人员使用端口扫描器来发现开放端口、识别正在运行的服务,并评估系统的安全状况。 本项目演示了如何仅使用 Python 内置库来实现该过程的自动化。 该扫描器支持: - 将主机名解析为 IP 地址 - 使用多线程同时扫描多个端口 - 检测开放的 TCP 端口 - 尝试进行 Banner 抓取 - 在简洁的终端界面中展示结果 # 功能 - ✅ 多线程 TCP 端口扫描 - ✅ Banner 抓取 - ✅ 可配置的端口范围 - ✅ 可配置的线程数量 - ✅ 主机名解析 - ✅ 轻量级(无需第三方库) - ✅ 对初学者友好的 Python 实现 # 项目结构 ``` python-port-scanner/ │ ├── port_scanner.py ├── README.md └── screenshots/ └── port_scanner_output.png ``` # 环境要求 - Python 3.8+ 完全使用 Python 的标准库构建: - socket - threading - queue - argparse 无需安装任何额外的包。 # 安装说明 克隆仓库: ``` git clone https://github.com/Susan367760/python-port-scanner.git ``` 进入项目目录: ``` cd python-port-scanner ``` # 使用方法 ### 扫描 localhost ``` python port_scanner.py 127.0.0.1 ``` ### 扫描自定义端口范围 ``` python port_scanner.py 127.0.0.1 -s 20 -e 100 ``` ### 扫描主机名 ``` python port_scanner.py scanme.nmap.org -s 20 -e 100 ``` # 示例输出 ``` ======================================================= Python Multi-threaded Port Scanner ======================================================= Target : 127.0.0.1 IP Address : 127.0.0.1 Port Range : 20-100 Threads : 100 ======================================================= [OPEN] Port 22 Banner: SSH-2.0-OpenSSH_8.2 [OPEN] Port 80 Banner: HTTP Service ======================================================= Scan Complete ======================================================= Port 22 OPEN Banner : SSH-2.0-OpenSSH_8.2 Port 80 OPEN Banner : HTTP Service ======================================================= ``` # 工作原理 ``` Target Host │ ▼ Resolve Hostname to IP Address │ ▼ Create Queue of Target Ports │ ▼ Launch Multiple Worker Threads │ ▼ Attempt TCP Connection to Each Port │ ┌──────────┴──────────┐ ▼ ▼ Port Open Port Closed │ │ ▼ ▼ Attempt Banner Ignore Grabbing │ ▼ Display Open Ports │ ▼ Scan Complete ``` # 涉及的网络概念 本项目展示了对以下内容的实践理解: - TCP/IP 网络 - Socket 编程 - 端口扫描 - Banner 抓取 - 多线程 - 主机名解析 - 网络侦察 - 命令行界面 (CLI) # 💻 使用的技术 - Python 3 - Socket 库 - Threading - Queue - argparse - TCP/IP 网络 # 学习成果 通过本项目,我加深了对以下知识的理解: - Python socket 编程 - 使用线程的并发编程 - 网络服务发现 - TCP 连接建立 - Banner 抓取技术 - 网络安全侦察 - 使用 Python 实现自动化 # 未来改进 未来版本可能包括: - UDP 端口扫描 - IPv6 支持 - 服务版本检测 - 操作系统指纹识别 - 生成 JSON 报告 - 导出 CSV 报告 - 生成 HTML 报告 - 进度条 - 使用 Tkinter 或 PyQt 构建 GUI - 与 Nmap 集成 - 使用 CVE 数据库进行漏洞查询 - 实时扫描仪表板 # 展示的技能 - Python 编程 - 网络安全 - 网络安全 - TCP/IP - Socket 编程 - 多线程 - 自动化 - CLI 开发 - 问题解决 # 作品集项目 本项目是我的网络安全作品集的一部分,我在其中构建了实用工具以提升我在以下领域的技能: - 网络安全 - Python 自动化 - 云计算 - 网络 - 软件开发 # 作者 ## Susan Maina 计算机科学理学学士 人民大学 ### GitHub https://github.com/Susan367760 ### LinkedIn https://www.linkedin.com/in/mainasusan/ # 与我联系 我热衷于在以下领域构建解决方案: - 网络安全 - 云计算 - Python 自动化 - 网络安全 - 软件工程 欢迎与我建立联系! - **GitHub:** https://github.com/Susan367760 - **LinkedIn:** https://www.linkedin.com/in/mainasusan/ # 如果您觉得这个项目对您有帮助... # 许可证 本项目基于 **MIT License** 授权。 您可以出于教育和个人目的自由使用、修改和分发本项目。