Hack-The-Hub Prototype

These days, I ordered the first bunch of hardware for my recent home automation project. However, beside all the sensors and actors I want to put into my home, I also would like to monitor and control as much devices as possible. Therefore, I came up with a little prototype to check whether some of my devices are online or not.

Candidates for my prototype where my

  • Thecus N4200PRO  (NAS)
  • Lexmark Optra S 1255 (LAN-enabled laser printer)
  • Canon PIXMA MG3150 (WLAN enabled inkjet printer/scanner)

My first thought was about using a tool such as Icinga for monitoring purposes. The tool is open source, well supported and used by many IT Pros in large companies. Icinga is based on NAGIOS, providing a REST API and a AddOn mechanism. However, the overhead to learn everything from the scratch was to much.

For now, I just wanted a prototype to verify whether my ideas work or not or if there are maybe any showstoppers.

While implementing the prototype, programmatically checking the availability using a simple ping was quite easy as the NAS and the laser printer both use a static IP address. However, the Wi-Fi-enabled inkjet printer uses dynamic assigned IP addresses from the DHCP server.

For the inkjet printer, only the MAC address is known. Chris Pietschmann wrote quite a nice post how to wrap arp.exe in a small .NET class, though.

For those not familiar with ARP, ARP is the acronym for Ethernet Address Resolution Protocol and was originally specified in the RFC 826arp.exe is a small Windows command line tool, allowing you to view the address translation tables.

“Displays and modifies the IP-to-Physical address translation tables used by address resolution protocol (ARP).”

Based on this, I wrote a small client capable of checking whether any device talking over TCP/IP is available or not if either the IP or the MAC is known.

Hack-The-Hub Prototype

Leave a Reply