SolderXploit/port_scanner
GitHub: SolderXploit/port_scanner
一个仅依赖 Python 标准库、无需 root 权限的轻量级 TCP 端口扫描器,支持多线程并发扫描与服务 banner 抓取。
Stars: 0 | Forks: 0
# 端口扫描器
一个使用纯 Python 编写的 TCP 端口扫描器 —— 不依赖 nmap,不依赖第三方库,仅使用 `socket` 模块。
专为 **@SolderXploit** YouTube 频道打造。
## 功能
- TCP connect 扫描(`socket.connect_ex`) —— 无需 root 权限
- 端口输入:范围(`1-1000`)、列表(`22,80,443`)、混合(`22,80,100-200`)或 `common`(默认)
- 通过 `socket.getservbyport()` 自动检测服务名
- 可选的 banner 抓取(`-b`) —— 读取服务在连接时发送的信息
- 使用 `concurrent.futures` 进行多线程处理 —— 即使在大型端口范围内也能保持快速
- 将结果保存到文件(`-o`)
- 使用 argparse 实现简洁的 CLI —— 采用与 nmap 相同的 flag 规范
## 环境要求
- Python 3.7 或更高版本
- 无需外部包 —— 仅需 Python 标准库
## 安装
### 选项 1 —— 克隆仓库
```
git clone https://github.com/SolderXploit/port_scanner.git
cd port_scanner
```
### 选项 2 —— 直接下载文件
```
curl -O https://raw.githubusercontent.com/SolderXploit/port_scanner/main/port_scanner.py
```
或者直接从仓库下载 `port_scanner.py` 并将其保存到您计算机上的任意位置。
## 用法
```
python port_scanner.py -H [options]
```
### Flags
| Flag | 长格式 | 默认值 | 描述 |
|------|-----------|---------|-------------|
| `-H` | `--host` | 必填 | 目标 IP 地址或主机名 |
| `-p` | `--ports` | `common` | 端口规格:`1-1000`、`22,80,443`、`22,80,100-200` 或 `common` |
| `-t` | `--threads` | `100` | 并发线程数 |
| `-T` | `--timeout` | `1.0` | 连接超时时间(秒) |
| `-b` | `--banner` | off | 抓取服务 banner |
| `-v` | `--verbose` | off | 同时显示关闭的端口 |
| `-o` | `--output` | none | 将结果保存到文件 |
## 示例
```
# 扫描常见端口(默认 — 无需 -p)
python port_scanner.py -H 192.168.1.1
# 扫描端口范围
python port_scanner.py -H 192.168.1.1 -p 1-1000
# 扫描特定端口
python port_scanner.py -H 192.168.1.1 -p 22,80,443,8080
# 混合:特定 + 范围
python port_scanner.py -H 192.168.1.1 -p 22,80,100-200
# 抓取服务 banners
python port_scanner.py -H 192.168.1.1 -p 1-1000 -b
# 使用 200 个 threads 进行完整扫描
python port_scanner.py -H 192.168.1.1 -p 1-65535 -t 200
# 保存结果到文件
python port_scanner.py -H 192.168.1.1 -p 1-1000 -o results.txt
# 通过主机名扫描
python port_scanner.py -H scanme.nmap.org -p 1-1000
```
## 示例输出
```
██████╗ ██████╗ ██████╗ ████████╗ ███████╗ ██████╗ █████╗ ███╗ ██╗
...
Python Port Scanner — @SolderXploit
Target : 192.168.1.1 (192.168.1.1)
Ports : common (24 ports)
Threads : 100
Timeout : 1.0s | Banners: off
Started : 2026-06-25 14:30:00
───────────────────────────────────────────────────────
[+] 22 /tcp open ssh
[+] 80 /tcp open http
[+] 139 /tcp open netbios-ssn
[+] 443 /tcp open https
[+] 445 /tcp open microsoft-ds
───────────────────────────────────────────────────────
[*] 5 open port(s) found on 192.168.1.1
[*] Finished: 2026-06-25 14:30:02
```
## 法律声明
## Python 渗透测试系列的一部分 —— @SolderXploit
| 视频 | 工具 |
|-------|------|
| 视频 04 | 侦察工具 —— 子域名与目录枚举 |
| 视频 05 | 通过 Telegram 实现的 Python C2 |
| 视频 06 | 端口扫描器(本工具) |
标签:DNS枚举, Python, Socket编程, 插件系统, 数据统计, 无后门, 端口扫描, 系统独立性, 网络安全工具, 网络扫描器, 逆向工具