Biyanipm7966/Network-Port-Scanner
GitHub: Biyanipm7966/Network-Port-Scanner
一个基于 Java 的多线程 TCP 端口扫描器,支持并发扫描、知名端口服务检测与实时横幅抓取。
Stars: 0 | Forks: 0
# 网络端口扫描器
一个使用 Java 编写的快速多线程 TCP 端口扫描器。支持通过知名端口映射进行服务检测,并实时抓取横幅信息。
## 功能
- 使用可配置线程池(`ExecutorService`)进行多线程扫描
- 对 35+ 个知名端口(HTTP、SSH、MySQL、Redis 等)进行服务检测
- 抓取横幅信息以识别精确的服务版本
- 可配置的端口范围、超时时间和线程数
- 扫描期间实时显示进度指示器
## 系统要求
- Java 8+
## 构建
```
bash compile.sh
```
这会将所有源代码编译到 `out/` 目录中。
## 使用方法
```
java -cp out Main [options]
```
或者使用便捷包装脚本(需要时编译并运行):
```
bash scan.sh [options]
```
### 选项
| 标志 | 长形式 | 描述 | 默认值 |
|------|-----------|-------------|---------|
| `-p` | `--ports` | 端口范围(`起始-结束`)或单个端口 | `1-1024` |
| `-t` | `--timeout` | 连接超时(毫秒) | `500` |
| `-T` | `--threads` | 线程池大小 | `200` |
| `-b` | `--banners` | 在开放端口上启用横幅抓取 | 关闭 |
| `-h` | `--help` | 显示用法 | |
### 示例
```
# 扫描 localhost 上的知名端口
java -cp out Main localhost
# 使用 500 个线程扫描端口 1–10000 并进行横幅抓取
java -cp out Main scanme.nmap.org -p 1-10000 -T 500 -b
# 扫描单个端口
java -cp out Main 192.168.1.1 -p 80 -b
# 为慢速/远程主机设置更宽的超时
java -cp out Main example.com -p 1-65535 -t 1000 -T 300
```
### 示例输出
```
╔══════════════════════════════════════════════╗
║ Network Port Scanner v1.0 ║
╚══════════════════════════════════════════════╝
Target : localhost (127.0.0.1)
Ports : 1 - 1024
Threads : 300
Timeout : 500 ms
Banners : yes
──────────────────────────────────────────────
Scanning... 1024/1024 ports (100%)
──────────────────────────────────────────────
PORT STATUS SERVICE
──────────────────────────────────────────
22 OPEN SSH [SSH-2.0-OpenSSH_10.2]
80 OPEN HTTP [HTTP/1.1 200 OK]
Found 2 open port(s).
Scan completed in 0.09 seconds.
──────────────────────────────────────────────
```
## 项目结构
```
├── src/
│ ├── Main.java # CLI entry point and argument parsing
│ ├── PortScanner.java # Multi-threaded scan engine
│ ├── ServiceDetector.java # Port-to-service mapping and banner grabbing
│ └── ScanResult.java # Result data model
├── compile.sh # Build script
└── scan.sh # Compile-and-run wrapper
```
## 法律声明
仅扫描您自己拥有或明确获得授权测试的主机。未经授权的端口扫描在您所在司法管辖区可能属于违法行为。
标签:Banner抓取, DNS枚举, ExecutorService, Java网络编程, JS文件枚举, TCP扫描, URL短链接分析, 二进制发布, 云存储安全, 可配置扫描, 域名枚举, 多线程扫描, 并发扫描, 开源工具, 情报分析, 数据统计, 文档结构分析, 服务探测, 服务版本识别, 端口扫描, 端口映射, 端口范围, 线程池, 网络安全工具, 网络扫描, 网络诊断, 超时配置, 进度显示