A modern, cross-platform Python replacement for the legacy Java-based
UBNT Discovery Tool. It discovers Ubiquiti devices on your local network by
sending UDP broadcast packets on port 10001 and parsing the TLV-encoded
responses — all in a clean tkinter desktop GUI, with no external
dependencies.
The original Java tool (
ubnt-discovery-v2.5.1.jar) no longer runs on modern Java (9+) because of aClassFormatErrorcaused by illegal class field names. This project rebuilds it from scratch in Python 3.
Author: shujaa ahmed issa · License: MIT
Grab the ready-to-run installer from the
latest release —
download UBNT-Discovery-Setup-1.0.0.exe, run it, and you're done. No Python
required.
Prefer to run from source or build it yourself? See the sections below.
- UBNT Discovery Protocol — sends V1 + V2 UDP broadcast packets on port 10001 and parses the TLV responses from Ubiquiti devices.
- Desktop GUI (tkinter):
- Device table: Product Name, IP Address, Hardware (MAC) Address, System Name, SSID, Firmware, Uptime.
- Scan button with a 4-second countdown timer.
- Sortable columns (IP addresses sort numerically).
- Live search / filter across all columns.
- Double-click a device for a full details dialog.
- Right-click menu: Copy IP, Copy MAC, Open Web UI.
- Clear button to reset results.
- Multi-interface support — broadcasts on every local network interface.
- Cross-platform — Windows, Linux, and macOS.
- Python 3.x with tkinter (bundled with most Python installations).
- No third-party packages required.
python ubnt_discovery.pyOn Windows you can also just double-click ubnt-discovery-py.bat.
The build artifacts (build/, dist/, *.exe) are intentionally not
committed. Build them yourself with PyInstaller:
pip install pyinstaller
python build_exe.pyThis produces dist/UBNT-Discovery.exe (single-file, windowed). The
UBNT-Discovery.spec file holds the PyInstaller configuration.
An Inno Setup script (installer.iss) is
included. After building the .exe, compile installer.iss with Inno Setup to
produce UBNT-Discovery-Setup-1.0.0.exe.
Issues and pull requests are welcome — the goal is for anyone to use, modify, and
improve the tool. The entire application lives in a single, dependency-free file
(ubnt_discovery.py), so it's easy to read and hack on.
Released under the MIT License — © 2026 shujaa ahmed issa.