一个用Go语言开发的局域网设备扫描工具,可以快速发现局域网内所有可达的设备,并检测SSH服务。
- 自动获取本机所有网卡地址
- 智能选择局域网IPv4网段(如192.168.1.0/24)
- 支持多网卡环境
- 并发扫描局域网内所有IP地址(1-254)
- 限制并发数量(20个)避免系统资源耗尽
- 智能ping判断:通过分析ping输出内容判断是否真正可达
- 支持Windows和Linux/Unix系统
- 对每个可达IP进行反向DNS查询
- 显示设备主机名(如TommyA、HPServer、redisserver等)
- 无法解析时显示"未知"
- 对可达IP进行22端口(SSH)连通性检测
- TCP连接检测,超时时间3秒
- 限制并发数量(5个)避免连接过多
- 详细显示连接状态和错误信息
- IP地址按数字大小排序(非字符串排序)
- 自动提取IP地址部分进行排序
- 分类显示:可ping通IP列表 + 22端口开放IP列表
- Go 1.16 或更高版本
- Windows/Linux/macOS
git clone https://github.com/yourusername/network-scanner.git
cd network-scannergo run find_ip.go# Windows
go build -o network-scanner.exe find_ip.go
# Linux/macOS
go build -o network-scanner find_ip.go本机所有网卡地址:
192.168.1.103/24
127.0.0.1/8
选用网段: 192.168.1.0/24
使用网段: 192.168.1.0/24
开始扫描局域网,请稍等...
可ping通的IP:
192.168.1.1(未知)
192.168.1.2(未知)
192.168.1.3(未知)
192.168.1.6(TommyA)
192.168.1.7(未知)
192.168.1.9(未知)
192.168.1.11(未知)
192.168.1.12(未知)
192.168.1.14(HPServer)
192.168.1.102(redisserver)
192.168.1.103(N5A)
检查22端口连通性...
22端口开放的IP:
192.168.1.7
192.168.1.12
192.168.1.102
- 跨平台支持:Windows、Linux、macOS
- 并发编程:使用goroutine和sync.WaitGroup
- 信号量控制:限制并发数量避免资源耗尽
- 网络编程:ping命令 + TCP连接检测
- 智能排序:IP地址按数字大小排序
- 网络管理员快速扫描局域网设备
- 系统管理员发现网络中的服务器
- 安全测试人员识别网络拓扑
- 家庭用户了解家庭网络设备分布
- 需要管理员/root权限运行(某些系统)
- 防火墙可能会阻止ping或端口扫描
- 某些设备可能不响应ping请求
- 扫描时间取决于网络环境和设备数量
MIT License
欢迎提交Issue和Pull Request!
- 初始版本发布
- 支持局域网IP扫描
- 支持主机名解析
- 支持22端口检测
- 智能IP排序