Madhav003/PortScan

GitHub: Madhav003/PortScan

一个使用 Python 编写的轻量级 CLI 端口扫描器,支持 TCP connect 和可选的 SYN 扫描模式来探测开放端口与服务信息。

Stars: 0 | Forks: 1

# portscout 一个使用 Python 编写的轻量级 CLI 端口扫描器。扫描目标开放的端口,识别每个端口上运行的服务,并尽可能抓取 banner。作为基础的网络安全工具构建——核心扫描无需任何外部依赖,并支持通过 Scapy 进行可选的原始 SYN 扫描模式。 ## 状态 🚧 开发中。目前已实现: - [x] `parse_ports` — 解析 `--ports` 范围/列表和 `--top-ports N` 快捷方式 - [x] `tcp_connect_scan` — 单端口 TCP connect 扫描 - [ ] `scan_range_threaded` — 跨端口范围的多线程扫描 - [ ] `get_service_name` — 服务名称查找 - [ ] `grab_banner` — banner/版本抓取 - [ ] `syn_scan` — 可选的原始 SYN 扫描(Scapy,需要 root 权限) - [ ] 表格 + JSON 输出 - [ ] CLI(`argparse`) ## 动机 大多数“hello world”级别的端口扫描器只是检查 socket 是否能连接。本项目旨在更接近真正的侦察工具:通过多线程提升速度,识别服务(而不仅仅是开放/关闭),并支持 connect 扫描(随处可用,无需特殊权限)和 SYN 扫描(更快、更隐蔽,仅限 root 用户)——这正是 Nmap 等工具所依赖的两种核心技术。 ## 用法 ``` # (一旦 CLI 接通后即将推出) python portscout.py 192.168.1.1 --ports 1-1000 python portscout.py scanme.nmap.org --top-ports 20 --syn python portscout.py 10.0.0.5 --ports 22,80,443 --output results.json ``` ## 技术 - Python 3,标准库 `socket` + `concurrent.futures` 用于核心多线程 connect 扫描 - [Scapy](https://scapy.net/) 用于可选的原始 SYN 扫描 - 无其他依赖 ## 安装 ``` pip install -r requirements.txt ``` ## 测试 核心扫描逻辑可以安全地在 `127.0.0.1`(本地主机)或 [`scanme.nmap.org`](https://nmap.org/book/testing.html) 上进行测试,Nmap 官方项目明确允许出于测试目的对其进行扫描。请勿扫描不属于您或未获授权测试的主机。 ## 许可证 MIT
标签:Python, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护