Ashwini-t04/python-port-scanner

GitHub: Ashwini-t04/python-port-scanner

一个基于 Python 的 TCP 端口扫描器,用于探测目标主机上指定端口范围内的开放端口,帮助学习者理解网络编程与网络安全基础。

Stars: 0 | Forks: 0

# Python 网络端口扫描器 ## 描述 这是一个基于 Python 的 TCP 端口扫描器,可以扫描目标 IP 地址或域名上用户指定范围的端口。该应用程序能够识别开放和关闭的端口,妥善处理常见的网络错误,并在扫描完成后显示开放端口的总数。构建此项目是为了学习 Python socket 编程、TCP/IP 网络和基本的网络安全概念。 ## 功能 - 使用 IP 地址或域名扫描目标。 - 扫描用户自定义范围的 TCP 端口。 - 显示开放的端口。 - 统计并显示开放端口的总数。 - 妥善处理无效的主机名和网络错误。 - 允许用户使用 `Ctrl + C` 安全地停止扫描。 - 将扫描结果导出为 CSV - 将结果导出为 JSON ## 使用技术 - Python 3 - Socket Module - TCP/IP 网络通信 - Datetime Module - Sys Module ## 工作原理 1. 用户输入目标 IP 地址或域名。 2. 用户指定要扫描的起始和结束端口号。 3. 程序将域名解析为相应的 IP 地址。 4. 它会创建一个 TCP socket 并尝试连接到指定范围内的每个端口。 5. 如果连接成功,该端口将显示为 **OPEN**。 6. 在检查完每个端口后,会在移至下一个端口之前关闭该 socket。 7. 扫描完所有端口后,程序将显示发现的开放端口总数。 8. 该程序还能妥善处理无效的主机名、网络错误和用户中断。 ## 安装说明 1. 克隆仓库。 2. 导航到项目目录。 3. 确保您的系统上已安装 Python 3。 4. 使用 Python 运行应用程序。 ## 运行说明 ``` python scanner.py ``` 出现提示时,请输入: - 目标 IP 地址或域名 - 起始端口号 - 结束端口号 ## 示例输出 ``` -------------------------------------------------- Scanning Target: scanme.nmap.org Time Started: 2026-07-14 14:30:15 -------------------------------------------------- [OPEN] Port 22 ... [OPEN] Port 80 -------------------------------------------------- Scan Completed Total Open Ports: 2 -------------------------------------------------- ``` ## 项目结构 ``` Python-Port-Scanner/ │ ├── scanner.py ├── README.md ├── requirements.txt ├── .gitignore ├── LICENSE └── screenshots/ └── scan_result.png ``` ## 未来改进 - 为开放端口添加服务检测。 - 将扫描结果导出为 CSV 和 JSON 格式。 - 实现多线程以加快扫描速度。 - 支持使用 `argparse` 处理命令行参数。 - 通过带有颜色的终端输出改善用户界面。 - 显示总扫描时长。 ## 免责声明 本项目仅供教育目的使用。请仅在您拥有或获得明确许可进行测试的系统和网络上使用此工具。未经授权的网络扫描可能会违反法律或组织政策。
标签:DNS查询工具, Python, Socket编程, TCP/IP, 云存储安全, 插件系统, 无后门, 端口扫描器, 网络安全, 网络扫描, 隐私保护