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, 协议发现, 原始套接字, 客户端加密, 局域网扫描, 开源自工具, 数据泄露防护, 数据统计, 服务识别, 本地网络工具, 流量捕获, 端口扫描, 系统分析, 线程池, 网络分析, 网络发现, 网络安全, 网络拓扑, 网络探测, 设备发现, 隐私保护, 零配置网络