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)
- 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.jarScan 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)