A python based local network scanner
Project description
LANscape
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 lanscape
Stats:
Latest release:
Health:
More screenshots
Flags
| 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 9000
Docker (Linux Only)
Docker is recommended for Linux hosts only. Network scanning requires --network host mode, which only works properly on Linux. For Windows/Mac, use pip install lanscape instead.
docker run -d --name lanscape \
--network host \
--cap-add NET_RAW \
--cap-add NET_ADMIN \
ghcr.io/mdennis281/lanscape:latest
Or use Docker Compose:
curl -O https://raw.githubusercontent.com/mdennis281/LANscape/main/docker-compose.yml
docker compose up -d
Access the UI at http://localhost:5001
Custom Ports
To use different ports, set the environment variables. When using --network host (as below), Docker ignores -p, so only the environment variables are needed. In bridge mode, you must also publish the matching ports with -p/ports:.
docker run -d --name lanscape \
--network host \
-e LANSCAPE_UI_PORT=8080 \
-e LANSCAPE_WS_PORT=8081 \
--cap-add NET_RAW \
--cap-add NET_ADMIN \
ghcr.io/mdennis281/lanscape:latest
Environment Variables
| Variable | Default | Description |
|---|---|---|
LANSCAPE_UI_PORT |
5001 |
Web UI port |
LANSCAPE_WS_PORT |
8766 |
WebSocket server port |
LANSCAPE_LOG_LEVEL |
INFO |
Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
LANSCAPE_MDNS |
true |
Enable mDNS discovery (true/false) |
LANSCAPE_WS_ONLY |
false |
WebSocket-only mode (true/false) |
LANSCAPE_LOG_FILE |
None |
Path to log file (optional) |
Note: Network scanning requires
--network hostmode for ARP/device discovery. Without it, you won't see MAC addresses/hostnames
Troubleshooting
MAC Address / Manufacturer is inaccurate or unknown
LANscape does an ARP lookup to determine MAC addresses. This can require elevated permissions to get accurate results — try running your shell as admin.
Scan accuracy seems low
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
Something else
Feel free to submit an issue with details about what you're seeing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lanscape-3.2.2.tar.gz.
File metadata
- Download URL: lanscape-3.2.2.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fb1fd1b766954daf324cc3fcc93256c4a4e260f0e47934e62e7b818e8a7dadb
|
|
| MD5 |
d9c8e9fdfc4759ab946d748e0227b2d3
|
|
| BLAKE2b-256 |
fb768299ea94ba2725b55eacb6575b30159f5413f6e3f1c5fb69e69923b5b42a
|
File details
Details for the file lanscape-3.2.2-py3-none-any.whl.
File metadata
- Download URL: lanscape-3.2.2-py3-none-any.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28e2e1035b0264111b112599190bc565d99244cea6de182df8d2602b600b836c
|
|
| MD5 |
174c1ec01e5b8138ae0dee981812f5f7
|
|
| BLAKE2b-256 |
dc1a874292a678457d2da3c5f2979e10c55fd5197738266a054d40573a90a5fa
|