From 335dbcf43cfab410513fecca3d3459b21919f149 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 16 Oct 2026 00:07:28 +0000 Subject: [PATCH 1/2] Write a full README for users and developers Covers what the tool is for, Phase 1 features, download and first run (UAC, SmartScreen), a short how-to, troubleshooting, roadmap, files it writes, and build/layout/CI notes. Adds a cropped CI screenshot of the main window. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_015b2AspKNFwd3rzcGepsPMh --- README.md | 105 ++++++++++++++++++++++++++++++- docs/images/main-window-dark.png | Bin 0 -> 84658 bytes 2 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 docs/images/main-window-dark.png diff --git a/README.md b/README.md index 640bfaa..36c47e9 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,106 @@ # ProDHCPServer -A Windows DHCP server tool for AV field technicians. Work in progress. +A portable DHCP server for Windows 10/11, built for AV field technicians. + +Plug your laptop into a DSP, camera, switcher, display or control processor, press **Start**, and see within seconds whether the device got an IP address. If it didn't, the app tells you why in plain English and what to try next. When you press **Stop**, your laptop's network settings go back exactly as they were. + +![ProDHCPServer main window in dark mode](docs/images/main-window-dark.png) + +> **Status:** Phase 1 (the core DHCP loop) is being built and tested on real hardware. Phases 2 and 3 follow once Phase 1 passes. See [Roadmap](#roadmap). + +## Why + +Most AV kit ships set to DHCP, and on a bench or a fresh site there's usually nothing to hand out addresses. The usual fixes (a spare router, a command-line DHCP server, guessing static IPs) are slow and leave your laptop's adapter in a mess. ProDHCPServer does the whole job in one window: it sets your adapter up, serves addresses on that adapter only, shows you the device, and puts everything back afterwards. + +## Features + +**Phase 1 (in progress)** + +- **Pick your Ethernet adapter** from a list showing link state, speed and current IP. The app remembers your last choice. +- **Safe adapter changes.** Your adapter's settings are backed up before anything changes and restored on Stop, on exit, at Windows shutdown, and after a crash (offered the next time you open the app). +- **Eight-step status panel**: adapter, cable/link, static IP, DHCP server, DHCP traffic, device leased an IP, device responding to ping, WebUI reachable. Each step is green, amber or red with a plain-English reason and a suggested next step. +- **Won't fight a venue network.** Before serving, it checks for another DHCP server on the cable and refuses to start if it finds one (with a deliberate override for networks you own). +- **Device card** with IP, MAC address, manufacturer (offline lookup, no internet needed), lease time and first-seen time. +- **Open WebUI** in one click, picking http or https from whichever port is open, plus quick port buttons and Copy IP. +- **Several devices at once** behind a small switch, each with its own lease. +- **Wi-Fi and VPN overlap warnings**, with a one-click option to turn Wi-Fi off until you press Stop. +- **Dark and light themes**, with large status text you can read from arm's length. + +**Default settings:** server IP `192.168.100.1/24`, addresses `192.168.100.100` to `192.168.100.199`, 60-minute leases. All of these can be changed in **Settings**. + +## Download and run + +1. Open the [Actions tab](https://github.com/cookingwithsimon/ProDHCPServer/actions/workflows/build.yml), pick the latest green **Build and test** run, and download **ProDHCPServer-win-x64** under Artifacts. +2. Unzip it. You get a single `ProDHCPServer.exe`; there's nothing to install and no .NET runtime needed. +3. Double-click it. Windows asks for administrator rights, because changing adapter settings and serving DHCP require them. +4. The exe isn't code-signed yet, so the first time Windows SmartScreen says "Windows protected your PC". Click **More info**, then **Run anyway**. + +## Using it + +1. Connect the device to your laptop's Ethernet port (directly or through a small switch) and power it on. +2. Pick your Ethernet adapter at the top of the window. +3. Press **Start**. Steps 1 to 4 go green within a few seconds. +4. Power-cycle the device or replug its cable if it doesn't ask for an address straight away. Its IP, name and manufacturer appear on the right. +5. Click **Open WebUI** to get to the device's web page. +6. Press **Stop** when you're done. Your adapter goes back to how it was. + +## Troubleshooting + +| What you see | What it usually means | +|---|---| +| Red banner: another DHCP server is on the link | You're plugged into a network that already hands out addresses (office, venue, home router). Unplug from it, or only use **Serve anyway** on a network you own. | +| Step 2 red, "No link" | No cable, a dead port, or the device is off. Steps 2 to 4 recover by themselves when the link comes up. | +| Step 5 amber, no DHCP requests after 30 seconds | The device probably has a static IP or DHCP turned off. | +| The device gets an offer but never accepts it | Some embedded network stacks ignore their own broadcast flag. Tick **Always broadcast replies** in Settings and try again. | +| Step 1 amber, mentions Wi-Fi or VPN | Another adapter is on the same subnet. Use **Turn it off until Stop**, or change the server IP in Settings. | +| The app was killed mid-session | Open it again and click **Restore now** on the banner. The backup lives in `C:\ProgramData\ProDHCPServer\adapter-backup.json` until it's restored. | + +If something goes wrong, [open an issue](https://github.com/cookingwithsimon/ProDHCPServer/issues/new/choose) using the **Problem on site** form, and include the session log text if you have it. + +## Roadmap + +Each phase ends with a hardware test pass on real AV equipment before the next one starts. + +- **Phase 1: core loop** (in progress). Everything listed under Features. +- **Phase 2: visibility.** Continuous ping with a latency graph per device, a full session log you can filter and export (TXT/CSV), and saved profiles for subnet, pool, lease time and DHCP options (router, DNS, NTP, option 43/66/150 and custom options). +- **Phase 3: discovery.** Find devices that already have a static IP, move your adapter onto their subnet in one click, and discover devices via mDNS (including Dante), SSDP/UPnP and LLDP/CDP. + +## Files it writes + +| What | Where | +|---|---| +| Your settings | `%LOCALAPPDATA%\ProDHCPServer\settings.json` | +| Adapter backup (only while a session runs, or after a crash) | `%ProgramData%\ProDHCPServer\adapter-backup.json` | + +While serving, the app also adds a Windows Firewall rule that lets only ProDHCPServer receive on UDP ports 67 and 68, and removes it on Stop. + +## For developers + +Built with C# on .NET 10 and WPF (Fluent theme), published as one self-contained single-file exe for win-x64. + +**Requirements:** the [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0). The Core tests and a full build also run on Linux and macOS; running the app needs Windows. + +``` +dotnet build ProDHCPServer.sln +dotnet test tests/ProDHCPServer.Core.Tests +dotnet publish src/ProDHCPServer.App -c Release -r win-x64 -o publish +``` + +**Layout** + +| Project | What's in it | +|---|---| +| `src/ProDHCPServer.Core` | Platform-independent logic: DHCP packet codec and server engine, adapter backup/restore lifecycle, status rules, manufacturer (OUI) lookup. Fully unit-tested. | +| `src/ProDHCPServer.Windows` | Windows specifics: adapter reading and changes, the UDP 67 socket, ARP entries, firewall rule, other-server probe, ping and port checks. | +| `src/ProDHCPServer.App` | The WPF app: UI, elevation prompt, crash handling. | +| `tests/` | Core unit tests (run anywhere) and Windows integration tests (run on the Windows CI runner and never change adapter settings). | +| `docs/` | Hardware test checklists for each phase. | +| `tools/` | CI smoke test (launches the app and takes screenshots) and the manufacturer list updater (`python3 tools/update-oui.py`). | + +**CI.** Every push and pull request runs the **Build and test** workflow on Windows: build, Core and Windows tests, publish the exe, and a smoke test that screenshots the app in light and dark mode. The exe and screenshots are uploaded as run artifacts. + +**Contributing.** Work happens on branches with pull requests into `main`. See [CLAUDE.md](CLAUDE.md) for the project rules (they apply to people too), and use the PR template's checklist. Formatting follows `.editorconfig`; check it with `dotnet format whitespace ProDHCPServer.sln --verify-no-changes`. + +## Licence + +No licence has been chosen yet, so all rights are reserved by the author. diff --git a/docs/images/main-window-dark.png b/docs/images/main-window-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a8fe9e07e033c9e88d45057de4d927a4d6e357ee GIT binary patch literal 84658 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 literal 0 HcmV?d00001 From 59a7d279a052e2dd31665ffd7e87560a1747bbfb Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 16 Oct 2026 00:07:41 +0000 Subject: [PATCH 2/2] README: clarify the firewall rule Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_015b2AspKNFwd3rzcGepsPMh --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 36c47e9..e807ea2 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Each phase ends with a hardware test pass on real AV equipment before the next o | Your settings | `%LOCALAPPDATA%\ProDHCPServer\settings.json` | | Adapter backup (only while a session runs, or after a crash) | `%ProgramData%\ProDHCPServer\adapter-backup.json` | -While serving, the app also adds a Windows Firewall rule that lets only ProDHCPServer receive on UDP ports 67 and 68, and removes it on Stop. +While serving, the app also adds a Windows Firewall rule so it can receive DHCP traffic (UDP 67 and 68, for this exe only), and removes the rule on Stop. ## For developers