Mo200909/Port_Scanner-
GitHub: Mo200909/Port_Scanner-
一款轻量级多线程 Python 端口扫描工具,通过 TCP 连接探测快速识别目标主机的开放端口及对应服务。
Stars: 0 | Forks: 0
# Port_Scanner-
# Port Scanner
一款多线程 Python 工具,用于扫描网络端口并识别开放的服务。
## 功能
使用 10 个并发线程扫描目标主机的开放端口。显示哪些端口是开放的以及运行在上面的服务(SSH、HTTP、HTTPS、DNS 等)。
## 使用方法
```
python Port_Scanner.py
Enter Target Host: 8.8.8.8
Enter Target Ports (e.g., 1-1000): 1-100
```
**输出:**
```
Port 53 is open (DNS)
```
## 特性
- **多线程** — 10 个并发线程提升速度
- **服务映射** — 识别常用端口(22=SSH, 80=HTTP, 443=HTTPS 等)
- **主机名解析** — 支持域名或 IP
- **清晰的输出** — 显示结果摘要
## 工作原理
1. 从用户处获取目标主机和端口范围
2. 将主机名解析为 IP 地址
3. 使用线程安全的 queue 将端口分配给 10 个工作线程
4. 每个线程测试与端口的连接(1 秒超时)
5. 记录开放端口及其服务名称
6. 展示有条理的摘要
## 技术细节
- **语言:** Python 3.6+
- **库:** socket, threading, queue(仅标准库)
- **线程:** 10 个工作线程从 queue 中获取任务
- **连接:** 使用 `socket.connect_ex()` 进行非阻塞检查
- **性能:** 约 100 秒可扫描约 1000 个端口
## 测试
可用于测试的安全公共服务器:
- `8.8.8.8` (Google DNS) — 端口 53 应该是开放的
- `1.1.1.1` (Cloudflare) — 端口 53 应该是开放的
- `google.com` — 端口 80, 443 应该是开放的
## 代码结构
```
SERVICE_PORTS dict → Maps ports to service names
scan_ports() → Worker thread function
main() → User input and thread management
```
## 法律声明
请仅扫描您拥有或已获得测试权限的系统。
标签:Python, Qt框架, 插件系统, 数据统计, 无后门, 服务识别, 端口扫描, 网络工具, 逆向工具