shakhsg/port-scanner

GitHub: shakhsg/port-scanner

一个仅依赖 Python 标准库的多线程 TCP 端口扫描器,支持开放端口检测、服务 banner 抓取及结果导出。

Stars: 0 | Forks: 0

# 网络端口扫描器 [![Python](https://img.shields.io/badge/Python-3.10%2B-blue?logo=python)](https://python.org) [![License: MIT](https://img.shields.io/badge/License-MIT-green)](LICENSE) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/39/39faa54be350a1dab8afd3b2fb8c1c83e4d9cff84abfef2374d19a18053687c4.svg)](https://github.com/shakhsg/port-scanner/actions) 一个使用 Python 构建的多线程 TCP 端口扫描器。能够识别开放端口、检测运行中的服务,并抓取 HTTP、FTP 和 SSH 服务的 banner。 **作者:** Shukhrat Mirzaev **语言:** Python 3 **技能:** Socket 编程 · 多线程 · CLI · OOP · 网络安全 ## 功能 - 多线程扫描,实现快速获取结果 - 抓取 banner 以检测服务版本(HTTP、FTP、SSH) - 超时处理 —— 不会在关闭的端口上发生阻塞 - 简洁的 CLI 界面,提供可自定义的选项 - 将扫描结果导出为 `.txt` 文件 ## 安装说明 ``` # 克隆仓库 git clone https://github.com/yourusername/port-scanner.git cd port-scanner # 无需外部依赖 — 仅使用 Python standard library python3 scanner.py --help ``` ## 使用说明 ``` # 基本扫描(端口 1-1024) python3 scanner.py scanme.nmap.org # 自定义端口范围 python3 scanner.py scanme.nmap.org -s 1 -e 500 # 保存结果到文件 python3 scanner.py scanme.nmap.org -o results.txt # 自定义线程和超时 python3 scanner.py scanme.nmap.org -s 1 -e 1024 -t 200 --timeout 0.5 ``` ### 选项 | 选项 | 描述 | 默认值 | |--------|-------------|---------| | `target` | 目标 IP 或域名 | 必填 | | `-s, --start` | 起始端口 | 1 | | `-e, --end` | 结束端口 | 1024 | | `-t, --threads` | 线程数 | 100 | | `--timeout` | 连接超时时间(秒) | 1.0 | | `-o, --output` | 将结果保存到 .txt 文件 | None | ## 示例输出 ``` ======================================================= Network Port Scanner by Shukhrat Mirzaev ======================================================= Target : scanme.nmap.org (45.33.32.156) Ports : 1 - 1024 Threads : 100 Started : 2025-03-28 22:00:00 ======================================================= Scanning... PORT SERVICE BANNER --------------------------------------------------------- 22 ssh SSH-2.0-OpenSSH_6.6.1p1 80 http Apache/2.4.7 (Ubuntu) ======================================================= Scan complete. 2 open port(s) found. ======================================================= ``` ## 法律声明 请仅扫描您拥有或获得明确授权的主机。未经授权的端口扫描在您所在的管辖区可能是违法行为。请使用 `scanme.nmap.org` 进行安全测试 —— 它是专门为此目的公开提供的。 ## 技术栈 - `socket` —— TCP 连接和抓取 banner - `threading` —— 多线程扫描 - `argparse` —— CLI 参数解析 - `datetime` —— 扫描时间戳
标签:Banner抓取, Docker 部署, Python, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 网络运维, 逆向工具, 隐私保护