network-scanner

# Network Scanner ### A fast, privacy-focused network scanner for Android

CI Downloads F-Droid Platform Jetpack Compose License: GPL v3

Discover and analyze devices on your local network with no ads, no tracking, and no internet required.

Get it on Google Play Get it on F-Droid

Download the latest APK from the Releases page.

Features

Device Discovery

Device Information

App

Screenshots

Main Screen Device List Device Details Settings Screen Main Screen Dark

Requirements

Permissions

Network Scanner requests only essential permissions: - **INTERNET** - For network communication - **ACCESS_NETWORK_STATE** - To check network connectivity - **ACCESS_WIFI_STATE** - To get WiFi information - **CHANGE_WIFI_MULTICAST_STATE** - For network device discovery - **NEARBY_WIFI_DEVICES** (Android 13+) - To discover nearby WiFi devices. On Android 16+ this permission also gates local network access (sockets to local addresses, mDNS, SSDP), so scanning cannot work without it - **ACCESS_FINE_LOCATION** / **ACCESS_COARSE_LOCATION** - Optional. Used only to read WiFi network details such as the SSID, and never for location tracking; scanning works without it

Building from Source

### Prerequisites - Android Studio Hedgehog (2023.1.1) or later - JDK 17 - Android SDK with API level 36 ### Build Steps 1. Clone the repository: ```bash git clone https://github.com/usamaiqb/network-scanner.git cd network-scanner ``` 2. Open in Android Studio or build from command line: ```bash ./gradlew assembleRelease ``` 3. The APK will be in `app/build/outputs/apk/release/`

Usage

  1. Open the app and grant necessary permissions
  2. Tap the scan button to discover devices
  3. Tap any device to view detailed information
  4. Use the deep scan option for port scanning, or run a full port scan for all 65,535 ports
  5. Rename devices or assign custom icons to keep track of your network

Translations

| Language | Progress | | β€” | β€” | | English | β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100% (source) | | Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ© | β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 99% | | EspaΓ±ol | β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 99% | | Italiano | β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 99% | | Русский | β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘ 91% | | Π£ΠΊΡ€Π°Ρ—Π½ΡΡŒΠΊΠ° | β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 99% | | δΈ­ζ–‡ (δΈ­ε›½) | β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100% |

Contributions to translations are welcome!

Known Limitations

ΒΉ **MAC addresses on Android 10+**: Since Android 10, apps can no longer read other devices' entries from the system's ARP table (SELinux restriction). This means MAC address and vendor lookup reliably works for your own device (and sometimes the router), but shows as "Unknown" for other devices on the network on Android 10 and above. This is an OS-level restriction that affects all network scanner apps, not a bug specific to this app, and can't be worked around without root access.

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Privacy

Network Scanner:

For full details, see the Privacy Policy.

Support

Acknowledgments

Built with: - [Kotlin](https://kotlinlang.org/) - Modern programming language for Android - [AndroidX](https://developer.android.com/jetpack/androidx) - Android Jetpack libraries - [Material Design 3](https://m3.material.io/) - Modern design system - [Kotlin Coroutines](https://kotlinlang.org/docs/coroutines-overview.html) - Asynchronous programming

Changelog

See CHANGELOG.md for version history and changes.


Made with ❀️ for the open source community