Bobyy32/lan-scanner
GitHub: Bobyy32/lan-scanner
一个基于 C 与 libpcap/libnet 的多线程局域网发现与端口扫描工具,解决内网设备发现与服务探测问题。
Stars: 0 | Forks: 0
# lan-scanner
一个用于局域网的多线程网络发现和端口扫描工具。结合多种发现协议以查看网络中的设备。
## 功能
- **ARP 扫描** — 扫描本地子网以发现所有活跃主机
- **mDNS 发现** — 查找通过组播 DNS(Bonjour/Zeroconf)广播的服务
- **SSDP 发现** — 检测 UPnP 设备(IoT、媒体服务器等)
- **TCP 端口扫描** — 使用线程池对已发现设备的指定端口进行 SYN 扫描
- **OUI 查找** — 将 MAC 地址解析为制造商名称
- **服务识别** — 将开放端口映射到已知服务名称
## 依赖
- `cJSON`
- `libpcap`
- `libnet`
- `gcc`
- `pyvis`
- `python3`(用于在构建期间生成 OUI/端口数据库)
## 构建与运行
```
# Release build (downloads OUI + port databases automatically)
make release
# Debug build
make debug
# Run (requires root for raw sockets)
sudo ./build/lanscan.out --full
```
## 用法
```
sudo lanscan [OPTIONS]
--arp ARP host discovery
--mdns mDNS service discovery
--ssdp SSDP/UPnP discovery
--tcp -p PORT,... TCP port scan (e.g. -p 22,80,443)
--full Run all protocols
-h, --help Show help
--topo Create html file of network topology
```
## 工作原理
该扫描器在各自独立的线程中运行每种协议,使用 libpcap 进行数据包捕获,并使用 libnet 进行数据包注入。发现的设备会存储在一个基于 MAC 地址键入的线程安全哈希表中。TCP 端口扫描使用线程池来并行化对所有已发现主机的连接尝试。
标签:ARP扫描, Bonjour, libnet, MAC解析, Makefile构建, Maven构建, mDNS发现, OUI查询, pyvis可视化, Qt框架, SSDP发现, TCP SYN扫描, UPnP, 依赖cJSON, 协议发现, 原始套接字, 客户端加密, 局域网扫描, 开源自工具, 数据泄露防护, 数据统计, 服务识别, 本地网络工具, 流量捕获, 端口扫描, 系统分析, 线程池, 网络分析, 网络发现, 网络安全, 网络拓扑, 网络探测, 设备发现, 隐私保护, 零配置网络