joeamm/port-scanner
GitHub: joeamm/port-scanner
一款零依赖的 Python 轻量级端口扫描器,通过多线程快速识别开放端口、映射服务并标记安全风险。
Stars: 0 | Forks: 0
# 🔍 Python 端口扫描器
一款快速、对新手友好的网络端口扫描器,能够识别开放端口、将其映射到已知服务,并标记潜在的危险暴露情况——同时生成一份简洁的彩色终端报告。
作为网络安全自由职业作品集的一部分进行开发。
## 功能介绍
- 扫描任意 IP 地址或域名的开放端口(默认:端口 1–1024)
- 识别每个开放端口上运行的服务(HTTP、SSH、FTP 等)
- 用通俗易懂的语言解释并标记**风险端口**,说明其危险原因
- 采用多线程技术,可在几秒内扫描 1,000+ 个端口
- 输出简洁、带颜色的终端报告
## 输出示例
```
Resolving scanme.nmap.org...
Resolved to 45.33.32.156
Scanning 1024 ports ..........
──────────────────────────────────────────────────────────
PORT SCAN REPORT
──────────────────────────────────────────────────────────
Target : scanme.nmap.org (45.33.32.156)
Port range: 1 – 1024
Scanned : 2026-06-10 14:32:01
Duration : 4.81 seconds
──────────────────────────────────────────────────────────
OPEN PORTS (3 found)
OPEN Port 22 SSH
OPEN Port 80 HTTP
OPEN Port 21 FTP ⚠ RISKY
──────────────────────────────────────────────────────────
SECURITY WARNINGS
! Port 21 (FTP)
FTP transmits data in plaintext — credentials can be intercepted.
──────────────────────────────────────────────────────────
Scan complete. 3 open port(s) found, 1 warning(s).
```
## 快速开始
**无需任何依赖** —— 仅使用 Python 内置的 `socket` 库。
```
# 克隆 repo
git clone https://github.com/joeamm/port-scanner.git
cd port-scanner
# 在 domain 上运行(默认 ports 1–1024)
python port_scanner.py scanme.nmap.org
# 扫描自定义 port range
python port_scanner.py scanme.nmap.org 1 500
# 扫描特定 IP
python port_scanner.py 192.168.1.1
```
## 工作原理
| 步骤 | 具体流程 |
|------|-------------|
| 1 | 通过 `socket.gethostbyname()` 将主机名解析为 IP 地址 |
| 2 | 使用 `socket.connect_ex()` 在每个端口上尝试建立 TCP 连接 |
| 3 | `ThreadPoolExecutor` 并行运行多达 100 次扫描以提高速度 |
| 4 | 将开放端口与已知服务映射表进行匹配 |
| 5 | 标记风险端口并提供安全建议 |
| 6 | 以彩色报告的形式打印结果 |
## 检测到的风险端口
| 端口 | 服务 | 风险 |
|------|---------|------|
| 21 | FTP | 明文传输凭证 |
| 23 | Telnet | 完全未加密 —— 应替换为 SSH |
| 445 | SMB | 曾被 WannaCry 勒索软件利用 |
| 3389 | RDP | 常见的勒索软件入口 |
| 3306 | MySQL | 绝不应公开暴露 |
| 6379 | Redis | 默认无身份验证 |
| 27017 | MongoDB | 曾发生过多次公开暴露事件 |
## 环境要求
- Python 3.7+
- 无需任何外部库
## 关于
由 joseph ammoun 开发 —— 拥有 Google 网络安全专业认证的 Python 开发者。
承接自由职业的安全审计、脚本编写和自动化项目。
💼 [Upwork](https://www.upwork.com/freelancers/~01620d7d3c7e1378b8?mp_source=share)
🔗 [LinkedIn](https://www.linkedin.com/in/joseph-ammoun-019850344/)
标签:Python, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护