deno/para/noia
2025-09-26 19:38:24 +02:00
..
api missing word type fallback 2024-04-04 01:54:21 +02:00
handlers ip lib things 2024-05-30 21:50:08 +01:00
hydration purge execa because it doesnt like deno 2024-07-09 04:14:26 +02:00
main.ts docs docs docs docs docs docs 2024-04-04 21:44:38 +02:00
prod.ts purge execa because it doesnt like deno 2024-07-09 04:14:26 +02:00
readme.md lowercase readme 2025-09-26 19:38:24 +02:00

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 :23815 which 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 (package arping on 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