Awatson2797/python-port-scanner

GitHub: Awatson2797/python-port-scanner

一个使用 Python 编写的多线程 TCP 端口扫描器,通过 socket 连接探测目标主机的开放端口并识别常见网络服务。

Stars: 0 | Forks: 1

# Python TCP 端口扫描器 这是一个使用 Python 的 `socket` 库编写的命令行 TCP 端口扫描器。该项目可以扫描目标主机或 IP 地址上用户指定范围的 TCP 端口,并识别开放端口上运行的常见网络服务。 ## 功能 - 扫描主机名或 IP 地址 - 使用 DNS 将主机名解析为 IP 地址 - 扫描自定义的 TCP 端口范围 - 验证命令行端口范围 - 检测开放的 TCP 端口 - 显示已知端口的常见服务名称 - 测量总扫描时间 - 将扫描结果导出到 `scan_results.txt` - 优雅地处理无效的主机名和端口号 - 多线程 TCP 端口扫描以提高性能 - 使用 `argparse` 实现命令行界面 ## 技术 - Python 3 - Socket 编程 (`socket`) - TCP/IP 网络 - 多线程 (`concurrent.futures`) - 命令行参数解析 (`argparse`) ## 工作原理 1. 输入主机名或 IP 地址。 2. 程序使用 DNS 将主机名解析为 IP 地址。 3. 输入起始和结束端口号。 4. 扫描器尝试与每个端口建立 TCP 连接。 5. 显示开放的端口及其关联的服务名称。 6. 将结果导出到 `scan_results.txt`。 ## 示例 ``` python3 port_scanner.py scanme.nmap.org -p 20-100 Target : scanme.nmap.org IP : 45.33.32.156 Ports : 20-100 Scanning... =================== Scan Complete =================== Open Ports Found: 2 22 SSH 80 HTTP Scan completed in 0.14 seconds. Results saved to 'scan_results.txt' ``` ## 项目结构 ```text python-port-scanner/ ├── port_scanner.py ├── README.md ├── requirements.txt └── .gitignore ## 展现的技能 - Socket 编程 - TCP/IP 网络 - DNS 解析 - Python 函数 - 异常处理 - 输入验证 - 字典 - 列表和元组 - 文件 I/O - 命令行界面开发 - 多线程 - Git & GitHub ## 未来改进 - [ ] Banner grabbing - [ ] 服务/版本检测 - [ ] 将结果导出为 CSV - [ ] 扫描进度指示器 - [ ] UDP 端口扫描 - [ ] 可选的终端彩色输出 ## 免责声明 本项目仅出于教育目的,请仅用于扫描您拥有或已获得测试权限的系统。 ## 用法 克隆仓库: ``` git clone https://github.com/Awatson2797/python-port-scanner.git ``` 导航到项目目录: ``` cd python-port-scanner ``` 运行应用程序: ``` python3 port_scanner.py ```
标签:Python, Socket编程, TCP/IP, 插件系统, 数据统计, 无后门, 端口扫描, 系统独立性, 网络工具