venantvr/Android.Net.Mapper

GitHub: venantvr/Android.Net.Mapper

一款Android平台的网络扫描工具,可发现局域网设备、扫描端口、识别服务和厂商信息。

Stars: 0 | Forks: 0

# NetMapper [![Android](https://img.shields.io/badge/Android-8.0+-green.svg)](https://developer.android.com) [![Java](https://img.shields.io/badge/Java-17-orange.svg)](https://openjdk.org/) [![许可证](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) ## 目录 - [FR - Français](#fr---français) - [EN - English](#en---english) - [技术文档 / Technical Documentation](docs/PROTOCOLS.md) ## FR - 法语 ### 描述 NetMapper 是一款 Android 原生网络扫描应用,可发现连接到本地网络的设备。它提供类似 nmap 的功能,并具有直观的移动端界面。 ### 功能 - **网络扫描**:发现本地网络上的主机(/24 范围) - **3 种扫描配置**: - Ping:仅 ICMP/ARP(快速) - Quick:6 个常用端口(22, 80, 443, 8080, 3389, 445) - Full:23 个端口(完整扫描) - **Wi-Fi 检测**:自动获取 SSID、BSSID、本地 IP 和网关 - **OUI 数据库**:支持 60 多家制造商(Apple、Samsung、Raspberry Pi 等) - **拓扑图**:网络拓扑的文本可视化 - **ARP 增强**:获取 MAC 地址 - **Banner 抓取**:获取 HTTP、SSH、FTP、SMTP 横幅 - **操作系统指纹识别**:检测操作系统 - **SSL 证书**:显示 SSL/TLS 证书信息 - **延迟测量**:毫秒级 RTT - **网络唤醒**:通过魔术包唤醒设备 - **路由追踪**:显示网络路径 - **Ping**:连接性测试及统计 - **mDNS/Bonjour**:服务发现(Apple、Chromecast、Spotify 等) - **UPnP/SSDP**:UPnP 设备检测(路由器、电视、NAS 等) - **SNMP**:网络设备查询(路由器、交换机) - **备注**:为设备添加自定义备注 - **导出**:JSON 和 CSV 格式 - **历史记录**:SQLite 扫描数据库 ### 架构 ``` graph TD A[MainActivity] --> B[Scanner] A --> C[DeviceAdapter] A --> D[OUI Database] A --> E[ScanDbHelper] A --> F[NetTools] B --> G[ThreadPool 64] G --> H[Socket Probe] G --> I[Banner Grab] G --> J[SSL Check] B --> K[ARP Enrichment] B --> L[MdnsDiscovery] B --> M[UpnpDiscovery] B --> N[SnmpDiscovery] F --> O[Wake-on-LAN] F --> P[Traceroute] F --> Q[Ping] ``` ### 界面 ``` graph LR A[Scan] --> B[Appareils] B --> C[Carte] C --> D[Config] D --> A ``` | 选项卡 | 描述 | | --------- | ------------------------------------ | | 扫描 | 配置和启动扫描 | | 设备 | 可筛选的已发现主机列表 | | 地图 | 可视化网络拓扑 | | 配置 | 网络工具、导出、统计 | ### 网络工具 | 工具 | 描述 | | ----------- | ------------------------------------- | | MAC 查询 | 按 OUI 查找制造商 | | Ping | 连接性测试(4 个数据包) | | 路由追踪 | 网络路径(最多 15 跳) | | 网络唤醒 | 通过魔术包唤醒 UDP:9 | | mDNS 扫描 | Bonjour 服务发现(端口 5353)| | UPnP 扫描 | SSDP 发现(端口 1900) | | SNMP 扫描 | SNMP v1 查询(端口 161) | | 导出 JSON | 完整导出为 JSON 格式 | | 导出 CSV | 电子表格导出为 CSV 格式 | ### 所需权限 | 权限 | 用途 | | -------------------- | -------------------------- | | INTERNET | 主机 socket 连接 | | ACCESS_WIFI_STATE | 读取 WiFi 信息 | | ACCESS_NETWORK_STATE | 网络状态 | | ACCESS_FINE_LOCATION | WiFi 扫描(Android 6+) | | NEARBY_WIFI_DEVICES | WiFi 扫描(Android 13+) | ### 安装 1. 下载 `NetMapper-v1.0.apk` 2. 在设置中启用"未知来源" 3. 安装应用 ### 编译 ``` # 克隆项目 git clone https://github.com/venantvr/Android.Net.Mapper.git cd Android.Net.Mapper # 调试编译 ./gradlew assembleDebug # 发布编译 ./gradlew assembleRelease # 签名 APK apksigner sign --ks release-key.jks --out app-signed.apk app-release-unsigned.apk ``` ## EN - 英语 ### 描述 NetMapper 是一款 Android 原生网络扫描应用,可发现连接到本地网络的设备。它提供类似 nmap 的功能,并具有直观的移动端界面。 ### 功能 - **网络扫描**:发现本地网络上的主机(/24 范围) - **3 种扫描配置**: - Ping:仅 ICMP/ARP(快速) - Quick:6 个常用端口(22, 80, 443, 8080, 3389, 445) - Full:23 个端口(完整扫描) - **Wi-Fi 检测**:自动获取 SSID、BSSID、本地 IP 和网关 - **OUI 数据库**:支持 60 多家制造商(Apple、Samsung、Raspberry Pi 等) - **拓扑图**:网络拓扑的文本可视化 - **ARP 增强**:获取 MAC 地址 - **Banner 抓取**:获取 HTTP、SSH、FTP、SMTP 横幅 - **操作系统指纹识别**:检测操作系统 - **SSL 证书**:显示 SSL/TLS 证书信息 - **延迟测量**:毫秒级 RTT - **网络唤醒**:通过魔术包唤醒设备 - **路由追踪**:显示网络路径 - **Ping**:连接性测试及统计 - **mDNS/Bonjour**:服务发现(Apple、Chromecast、Spotify 等) - **UPnP/SSDP**:UPnP 设备检测(路由器、电视、NAS 等) - **SNMP**:网络设备查询(路由器、交换机) - **备注**:为设备添加自定义备注 - **导出**:JSON 和 CSV 格式 - **历史记录**:SQLite 扫描数据库 ### 架构 ``` graph TD A[MainActivity] --> B[Scanner] A --> C[DeviceAdapter] A --> D[OUI Database] A --> E[ScanDbHelper] A --> F[NetTools] B --> G[ThreadPool 64] G --> H[Socket Probe] G --> I[Banner Grab] G --> J[SSL Check] B --> K[ARP Enrichment] B --> L[MdnsDiscovery] B --> M[UpnpDiscovery] B --> N[SnmpDiscovery] F --> O[Wake-on-LAN] F --> P[Traceroute] F --> Q[Ping] ``` ### 界面 ``` graph LR A[Scan] --> B[Devices] B --> C[Map] C --> D[Config] D --> A ``` | 选项卡 | 描述 | | ------- | ----------------------------------- | | 扫描 | 扫描配置和启动 | | 设备 | 可筛选的已发现主机列表 | | 地图 | 可视化网络拓扑 | | 配置 | 网络工具、导出、统计 | ### 网络工具 | 工具 | 描述 | | ----------- | ------------------------------------- | | MAC 查询 | 按 OUI 查找制造商 | | Ping | 连接性测试(4 个数据包) | | 路由追踪 | 网络路径(最多 15 跳) | | 网络唤醒 | 通过魔术包唤醒 UDP:9 | | mDNS 扫描 | Bonjour 服务发现(端口 5353) | | UPnP 扫描 | SSDP 发现(端口 1900) | | SNMP 扫描 | SNMP v1 查询(端口 161) | | 导出 JSON | 完整导出为 JSON 格式 | | 导出 CSV | 电子表格导出为 CSV | ### 所需权限 | 权限 | 用途 | | -------------------- | -------------------------- | | INTERNET | 主机 socket 连接 | | ACCESS_WIFI_STATE | 读取 WiFi 信息 | | ACCESS_NETWORK_STATE | 网络状态 | | ACCESS_FINE_LOCATION | WiFi 扫描(Android 6+) | | NEARBY_WIFI_DEVICES | WiFi 扫描(Android 13+) | ### 安装 1. 下载 `NetMapper-v1.0.apk` 2. 在设置中启用"未知来源" 3. 安装应用 ### 构建 ``` # 克隆项目 git clone https://github.com/venantvr/Android.Net.Mapper.git cd Android.Net.Mapper # 调试构建 ./gradlew assembleDebug # 发布构建 ./gradlew assembleRelease # 签名 APK apksigner sign --ks release-key.jks --out app-signed.apk app-release-unsigned.apk ``` ## 技术细节 ### 扫描器算法 ``` sequenceDiagram participant U as User participant S as Scanner participant T as ThreadPool participant H as Host U->>S: startScan subnet, profile S->>T: create 64 threads loop For each IP 1-254 T->>H: Socket.connect ip, port, 500ms alt Port open H-->>T: Connection success T->>T: grabBanner T->>S: onHost device else Port closed H-->>T: Connection failed end end S->>S: enrichWithArp S->>S: saveScanToDb S->>U: onDone devices ``` ### 设备模型 ``` classDiagram class Device { +String ip +String mac +String vendor +String hostname +String osGuess +List~Integer~ openPorts +Map~Integer,String~ banners +Map~Integer,String~ services +String sslCertInfo +long latencyMs +boolean saved +long firstSeen } ``` ### OUI 查询 ``` graph LR A[MAC Address] --> B[Extract prefix] B --> C["8 chars: XX:XX:XX"] C --> D{OUI Map} D -->|Found| E[Vendor Name] D -->|Not Found| F[Unknown Vendor] ``` ## 截图 深色 Material3 主题: - 背景色:`#080F18` - 表面色:`#0D1B2A` - 主色:`#0A84FF` - 成功色:`#4CAF50` ## 许可证 MIT 许可证 ## 作者 由 Claude Code 生成
标签:Android, Android开发, ARP扫描, Banner抓取, Bonjour, DFIR, DSL, Facebook API, ICMP扫描, Material Design, Maven构建, mDNS, OUI查找, SSDP, SSL证书, traceroute, UPnP, Wake-on-LAN, Wi-Fi分析, 云存储安全, 后台面板检测, 域名枚举, 局域网扫描, 插件系统, 操作系统指纹, 数据统计, 无线安全, 服务器安全, 目录枚举, 移动安全, 端口扫描, 网络发现, 网络安全, 网络工具, 网络扫描, 隐私保护