hellodk34/LanHostScanner
GitHub: hellodk34/LanHostScanner
基于 TCP 和 HTTP 协议的局域网活跃主机扫描器,帮助在没有网络管理权限时快速定位特定端口开放的设备 IP。
Stars: 0 | Forks: 0
# LanHostScanner - 局域网主机扫描器
一个用 Java 编写的局域网主机扫描工具,支持 TCP 和 HTTP 协议扫描。现成的 `LanHostScanner.jar` 文件请在项目 release 页面下载。
## 我的使用场景举例
1. 群晖 nas 设备接入了一个局域网,但是我没有局域网管理权限,可以借助本程序快速扫描局域网网段内的 5000(群晖web)端口,以快速找到群晖的IP
2. 我的 x86 小主机安装了 immortalwrt 系统作为旁路网关使用,小主机开机后借助本程序快速扫描出来 IP
- 使用 http 扫描 88 端口(luci web uhttpd 的服务端口默认是 80),我将web端口改成了88
- 或者使用 tcp 扫描 1003 端口(dropbear ssh 服务默认端口是 22),我将ssh dropbear 端口改成了1003
## ✨ 特性
- 🔍 支持 TCP 和 HTTP 两种协议扫描
- 🎯 精确的参数验证(IP格式、范围、端口等)
- ⚡ 多线程并发扫描,提高效率
- 📊 详细的扫描结果和统计信息
- 🔒 仅支持局域网IP扫描,确保安全
- 🔄 兼容 Java 8 到 Java 21+
## 📦 Downloads

### 使用方法
# TCP 扫描(默认2秒超时)
java -jar LanHostScanner.jar tcp 192.168.1.1 192.168.1.254 22
# HTTP 扫描(自定义超时3秒)
java -jar LanHostScanner.jar http 192.168.10.1 192.168.10.254 8080 3
# 跨网段+自定义超时5秒
java -jar LanHostScanner.jar tcp 192.168.0.1 192.168.1.254 22 5
## 📖 参数说明
java -jar LanHostScanner.jar <协议> <起始IP> <结束IP> <端口> [超时秒数]
| 参数 | 必需 | 说明 | 示例 |
|------|------|------|------|
| 协议 | ✅ | `tcp` 或 `http`(不区分大小写) | tcp |
| 起始IP | ✅ | 起始IP地址(必须是局域网IP) | 192.168.1.1 |
| 结束IP | ✅ | 结束IP地址(必须是局域网IP) | 192.168.1.254 |
| 端口 | ✅ | 目标端口号(1-65535) | 80 |
| 超时时间 | ❌ | 超时秒数(默认2秒) | 3 |
## 📋 支持的局域网IP范围
- **10.0.0.0/8**:10.0.0.0 - 10.255.255.255
- **172.16.0.0/12**:172.16.0.0 - 172.31.255.255
- **192.168.0.0/16**:192.168.0.0 - 192.168.255.255
## 🛡️ 安全特性
- ❌ 禁止扫描公网IP地址
- ❌ 严格的参数验证
- ❌ 防止IP范围错误
- ❌ 限制端口范围(1-65535)
## 📊 输出示例
========================================
🔍 局域网主机扫描器
========================================
协议类型: TCP
IP范围: 192.168.1.1 - 192.168.1.254
目标端口: 22
超时设置: 2 秒
扫描总数: 254 个IP
========================================
开始扫描...
✅ 发现设备: 192.168.1.100:22
✅ 发现设备: 192.168.1.150:22
========================================
🏁 扫描完成
========================================
总耗时: 15.23 秒
扫描IP数: 254
发现设备: 2 个
发现的设备列表:
- 192.168.1.100:22
- 192.168.1.150:22
========================================
## ⚠️ 注意事项
1. **仅限局域网使用**:本工具只能扫描局域网IP,无法扫描公网IP
2. **遵守法律**:请仅在自己拥有权限的网络中使用
3. **性能建议**:
- 建议扫描范围不要超过C类网段(254个IP)
- 可根据网络情况调整超时时间
- 大范围扫描时建议增加超时时间
## 🛠️ 技术细节
- **兼容性**:Java 8 - Java 21+
- **并发**:使用线程池实现并发扫描
- **协议支持**:
- TCP:使用Socket连接测试
- HTTP:使用HttpURLConnection测试
- **编码**:UTF-8
## 📦 依赖
纯Java实现,无外部依赖。
## 📄 License
MIT
标签:HTTP扫描, ImmortalWrt, IP扫描器, JS文件枚举, LanHostScanner, OpenWrt, TCP端口扫描, x86小主机, 域名枚举, 多线程扫描, 局域网扫描, 开源扫描工具, 插件系统, 数据统计, 旁路网关, 端口扫描, 网络安全, 网络工具, 群晖NAS发现, 设备发现, 跨网段扫描, 路由器IP扫描, 隐私保护