# LAN Graph Explorer A local LAN discovery service that pings every host on your primary subnet, optionally uses SSH key-based auth to query remote neighbors, and presents a Visio-style map via D3. ## Features - Detects your default IPv4 network and gateway automatically. - Pings each active host and performs reverse DNS lookup. - Attempts passwordless SSH (honoring `SSH_USER`/`SSH_KEY_PATH`) to collect `ip neigh` data so we can draw edges between hosts. - Serves a FastAPI backend and a D3-powered front-end that renders nodes/edges interactively. ## Getting started 1. Install dependencies (ideally inside a virtualenv): ```bash pip install --upgrade pip pip install fastapi uvicorn[standard] typer ``` 2. Run a scan from the command line: ```bash lan-graph scan --concurrency 64 --ssh-timeout 5 ``` 3. Start the UI server: ```bash lan-graph serve --host 0.0.0.0 --port 8000 ``` Open `http://localhost:8000` in a browser to see the topology. ## SSH key authentication Set environment variables so the scanner uses your preferred SSH identity: ```bash export SSH_USER=team export SSH_KEY_PATH=~/.ssh/id_rsa ``` The tool runs `ssh -o BatchMode=yes` and will skip hosts where it cannot connect quickly. ## Testing ```bash pip install pytest pytest ``` ## Notes - The graph draws gateways, the scanning host, and any discovered neighbor relationships for hosts that allow `ssh`. - It's designed to run on Linux machines with `ip`, `ping`, and `ssh` in place.