Mr-VantaRoot/port_scanner
GitHub: Mr-VantaRoot/port_scanner
这是一个轻量级的Python端口扫描工具,用于快速发现网络中的开放端口并识别服务。
Stars: 0 | Forks: 0
# 🔍 Python 端口扫描器
一个用 Python 构建的快速、多线程 TCP 端口扫描器。支持单主机扫描、自定义端口范围以及完整的子网发现——全部通过命令行完成,无需任何外部依赖。
## 功能
- **子网扫描** — 扫描 `/24` 网络上的所有 254 台主机
- **自动 IP 检测** — 自动检测您当前的网络
- **多线程** — 并发扫描端口以提高速度
- **服务检测** — 将开放端口映射到已知服务(SSH、HTTP、FTP 等)
- **命令行界面** — 通过参数在终端中易于使用
- **无外部库** — 仅使用 Python 标准库
## 环境要求
- Python 3.6+
- 无需安装 pip 包
## 用法
### 自动扫描当前网络
```
python port_scanner.py
```
### 扫描特定子网
```
python port_scanner.py /24
```
### 扫描单个主机
```
python port_scanner.py
```
### 自定义端口范围
```
python port_scanner.py /24 -p 1-500
```
## 示例输出
```
[*] Auto-detected local IP: 192.168.6.105
[*] Discovering live hosts on 192.168.6.0/24 ...
[*] Found 3 live host(s): 192.168.6.1, 192.168.6.5, 192.168.6.20
[*] Scanning 192.168.6.1
[*] Port range: 1 - 1024
[*] Started : 2026-05-16 10:32:00
[*] Finished : 2026-05-16 10:32:14
Target : 192.168.6.1
Open : 3 port(s) found
----------------------------------------
PORT STATE SERVICE
-------- -------- ---------------
22 OPEN SSH
80 OPEN HTTP
443 OPEN HTTPS
----------------------------------------
```
## 工作原理
1. **主机发现** — 探测子网上的常用端口(22, 80, 139, 443, 445)以发现活动设备
2. **端口扫描** — 使用 `socket.connect_ex()` 尝试对范围内的每个端口建立 TCP 连接
3. **多线程** — 每个端口生成一个线程进行并发扫描,并通过最大线程数限制进行控制
4. **服务映射** — 将开放端口与已知服务的字典进行匹配
## 支持的服务
| 端口 | 服务 | 端口 | 服务 |
|------|----------|------|--------------|
| 21 | FTP | 443 | HTTPS |
| 22 | SSH | 445 | SMB |
| 23 | Telnet | 3306 | MySQL |
| 25 | SMTP | 3389 | RDP |
| 53 | DNS | 5432 | PostgreSQL |
| 80 | HTTP | 8080 | HTTP-Alt |
| 110 | POP3 | 27017| MongoDB |
## 免责声明
本工具旨在用于**教育目的**以及扫描**您拥有或已获明确许可进行测试的网络**。未经授权的端口扫描在您所在的司法管辖区可能属于非法行为。
## 许可证
MIT 许可证 — 可自由使用和修改。
标签:AES-256, TCP扫描, 子网扫描, 密码管理, 插件系统, 数字取证, 数据统计, 服务检测, 漏洞评估, 端口扫描, 网络安全, 自动化脚本, 逆向工具, 隐私保护