A desktop network scanning tool built with Kotlin and Swing.
- Network Interface Detection — Lists all available IPv4 network interfaces with IP and subnet mask
- Ping Sweep — Multi-threaded ping scan to discover live hosts on the selected network
- MAC Address Resolution — Retrieves MAC addresses via ARP table lookup
- Vendor Identification — Identifies device vendors from MAC OUI prefixes (built-in database with 100+ vendors)
- Port Scanning — Scans 25 common ports (HTTP, SSH, FTP, RDP, etc.) on each discovered device
- Device Type Guessing — Attempts to classify devices (Router, Printer, Phone, Server, IoT, etc.) by hostname
- Gateway & DNS Detection — Reads gateway and DNS server addresses from system configuration
- SSID Detection — Shows connected Wi-Fi SSID (Windows; Linux via NetworkManager or
iwgetid) - Import / Export — Save scan results as JSON and reload them later
- Real-time Results — Devices appear in the table as they are discovered during scanning
- Java 24 (JDK 24)
For the portable version no requirements are required.
./gradlew build
./gradlew runOr run the generated JAR:
java -jar build/libs/NetAnalyzer-1.0-SNAPSHOT.jarBuilds a self-contained app with a bundled Java runtime. jpackage can't cross-compile, so run it on Linux (or in a Linux container / WSL):
./gradlew buildLinux
./build/linux/NetAnalyzer/bin/NetAnalyzer./gradlew buildDeb (Debian, Ubuntu, Mint; needs fakeroot) and ./gradlew buildRpm (Fedora, RHEL, openSUSE; needs rpmbuild) create packages in build/deb and build/rpm. Both install to /opt/netanalyzer and add a menu entry:
sudo apt install ./netanalyzer_1.0_amd64.deb
sudo dnf install ./netanalyzer-1.0-1.x86_64.rpmjpackage has no pacman target, so the package is built from the app-image with makepkg (needs base-devel):
./gradlew buildLinux
packaging/arch/makepkg.sh
sudo pacman -U packaging/arch/netanalyzer-1.0-1-x86_64.pkg.tar.zstScan results are exported in JSON format matching the structure defined in src/main/resources/template.json:
{
"interfaceName": "Wi-Fi",
"network": "192.168.1.0/24",
"gateway": "192.168.1.1",
"dns": "8.8.8.8, 1.1.1.1",
"ssid": "MyNetwork",
"devices": [
{
"ipv4": "192.168.1.1",
"ipv6": "",
"hostname": "router.home",
"type": "Router",
"mac": "00:11:22:33:44:55",
"vendor": "Cisco",
"ports": [80, 443]
}
],
"totalDevices": 1
}- Kotlin (JVM)
- Gradle 9.0
- FlatLaf (FlatMacDarkLaf dark theme)
- Gson (JSON serialization)
- Java Swing (UI)