A local network scanner with a built-in web UI. Discover devices, open ports, and running services on your network.
The UI was recently converted into react, stored in a separate repo: mdennis281/lanscape-ui
pip install lanscape
python -m lanscapeStats:
Latest release:
Docker:
Health:
| Flag | Description |
|---|---|
--version |
Show the installed version and exit |
--ui-port <number> |
Port for the web UI (default: auto) |
--ws-port <number> |
Port for the WebSocket server (default: 8766) |
--ws-server |
Start WebSocket server only (no UI) |
--persistent |
Don't auto-shutdown when the browser tab closes |
--mdns-off |
Disable mDNS service discovery |
--logfile <path> |
Write log output to a file |
--loglevel <level> |
Set log level: DEBUG, INFO, WARNING, ERROR, CRITICAL (default: INFO) |
--debug |
Shorthand for --loglevel DEBUG |
python -m lanscape
python -m lanscape --version
python -m lanscape --ui-port 8080
python -m lanscape --debug --persistent
python -m lanscape --logfile /tmp/lanscape.log --loglevel WARNING
python -m lanscape --ws-server --ws-port 9000Not recommended for most users. Network scanning requires direct LAN access (ARP, ICMP, broadcasts), which conflicts with Docker's network isolation. The Docker image requires
--network hostmode, which only works on Linux — on Windows and macOS, Docker Desktop runs inside a VM so--network hostexposes the VM's network, not your physical LAN.For most users,
pip install lanscapeis the better option.
If you're running on a Linux host and still want to use Docker, see the full setup guide: Docker Setup Instructions
LANscape does an ARP lookup to determine MAC addresses. This can require elevated permissions to get accurate results — try running your shell as admin.
The scanner uses a combination of ARP, ICMP, and port probing to find devices. If results aren't great out of the box:
- Tweak the scan configuration preset (accessible from the gear icon)
- Set up ARP lookup properly — see ARP issues
- Open an issue if something still seems off
Feel free to submit an issue with details about what you're seeing.


