Meh, this is crap.<p>1) You need a router that supports DHCP relay, which most home routers do not natively support.<p>2) It won't show you clients that are connected to the Wifi which is probably the majority of clients in most home networks.<p>3) It doesn't give you the ability to monitor anything beyond the DHCP lease table which all routers show.<p>So besides wasting 50$, losing a port on your router and having another thing that might break your network down you aren't getting anything.
Somehow I expected this talk about real network monitoring like using Ntop, Nagios, arpwatch etc. Just creating another dhcpd for the lan/wifi feels cumbersome just to get dhcp leases.<p>So how about using RPI as a network bridge between the router and the client hosts and then using Ntop, arpwatch etc. Then you can actually monitor the traffic in detail.
I guess it's interesting as an exercise, but openwrt gives you this and so much more on $30 routers. After years of experimenting with different router firmwares, I can't recommend openwrt enough. It's simply phenomenal.
"netmask 255.255.255.0"<p>"We chose to use the range 192.168.1.0/8 as our local network"<p>Minor typo, although it doesn't really matter in the big picture.<p>I like how it was written. In line commentary, like a tourist guide or a very informal runbook.<p>As a meta comment about the project goals it seems almost like a parody of taking something like logging into the CLI and running "arp" and turning it into the largest and most complicated system imaginable, I'm trying to figure out how to make it more complicated, maybe running it on https instead with a valid cert, or perhaps doing it all in Intercal or cobol instead of node.js.
You could set up an promiscuous WiFi card and monitor all active WiFi-sessions, the radio signals are still there, readable even if the actual connection/data is encrypted.<p>We did this at my university to monitor who's in our social activity facilities at any given time (opt-in).
>> Simply because WiFi is managed by the router and most of the routers out there don't provide you with such information or statistics.<p>I love Pi, and I have my own raspberry pi router project with 3d printed box and everything. But why spend money and an extra ethernet port for information that you can scrape off of your router's http page with something simple like a web testing tool?
It's a bit of fun, but you could probably do better with a Mikrotik board (eg: <a href="http://routerboard.com/RB922UAGS-5HPacD" rel="nofollow">http://routerboard.com/RB922UAGS-5HPacD</a> list price $79), a low-end microATX board with a few network adaptors - or as others have suggested, a wireless router with something like OpenWrt etc.
This is nice way of getting the live device data out from the router - I've made a few scripts in the past for logging into the router web interface and scraping connected device data as a "Who's in the house" display.<p>Pulling the DHCP functionality out into something more accessible is a great idea!
Would not using openwrt be a better solution I think that reports by client. And I am sure that Cisco Airnet and Ruckus kit does this.<p>And there are hacker distros for the PI designed for use as an ICE device - ideally you need to have a ethernet tap other wise you need two ports to monitor ethernet.
"By using only your current WiFi router that's surely impossible."<p>umm, what? I haven't seen a router for a long time that doesn't have that feature.
It'd be more interesting to dive into that nodejs snippet. The work to get the final result (a list of connected devices) has already been done and implemented in your home router.<p>And you swap a real router for a bandwidth constrained raspberry to get that list.
Curious - if you click 'Home' you (I) get chucked onto port 2368; the page is also served on 80, but not others (at random) - why is that? Funky load-balancing?
You could probably install something like pfsense or untangle and get a whole heck of a lot more tools. Or even dd-wrt. I'm assuming the drivers exist for this.
this solution monitors the wifi by sniffing on it (RPi and cheap WiFi dongle):<p><a href="https://people.ee.ethz.ch/~muejonat/wifimon/" rel="nofollow">https://people.ee.ethz.ch/~muejonat/wifimon/</a>