| .. | ||
| api | ||
| handlers | ||
| hydration | ||
| main.ts | ||
| prod.ts | ||
| readme.md | ||
para/noia
network presence detection app
works on linux and mac, maybe in wsl
fundamentally functions the same as the os arp table, but:
- exposes a json api (by default at
:23815which is a1z26 of 'who' [is home]) - forces the gateway as the rdns server (fixes rdns issues with custom dns)
- knows mac address ouis from wireshark
- issues some pings of its own to proactively keep the arp table up to date
- tries to heuristically determine when a device leaves the network
- takes a list of known devices, and tries to match them by hostname / mac
requirements
arp(should be installed by default on most systems)iproute2(apt:iproute2, brew:iproute2mac)tshark(wireshark cli)arping(packagearpingon apt & brew)
macos
brew install arping iproute2mac
brew install --cask wireshark
debian/ubuntu
apt install -y arping iproute2 tshark
usage
in production (systemd service recommended)
deno run -A main.ts -p 10000
to output mock data
deno run -A main.ts -p 10000 -m
there's a -v flag for verbose output, can be used twice for more verbosity