Skip to content

hellodk34/LanHostScanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

GitHub release 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> <端口> [超时秒数]
参数 必需 说明 示例
协议 tcphttp(不区分大小写) 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

About

扫描局域网下的活跃主机(基于 tcp+port or http+port)

Resources

License

Stars

Watchers

Forks

Contributors

Languages