Perkian - IP Address

Written by Rich Morin.

Contents: (hide) (show)

Path:  AreasContentOverviews

Precis:  determining the IP address of a Perkian system

It should be possible to set up a Perkian image so that even a newly installed system will boot with Secure Shell (SSH) enabled. So, in theory, the user can simply log in from a nearby, Wi-Fi enabled system. However, this ignores the issue of determining what IP address the Perkian system will be using.

In the scenario I have in mind, someone downloads an ISO image and copies it onto a mass storage device such as a microSD card or a USB flash drive. They then plug the device into the RasPi and power up the system. Assuming that the user’s location has an active Wi-Fi router, I’d expect the RasPi to pick up a Class C IP address from a Dynamic Host Configuration Protocol (DHCP) server and be ready to respond to requests. So, the user will still need a way to determine the new system’s IP address out of 200+ possibilities.

CFCL uses a “Cisco RV042 10/100 4-Port VPN Router”. This device lets me log in over either Wi-Fi or the wired LAN, using the password for its admin account. I can then browse through the router’s web interface to the DHCP Status page and examine the Client Table. This is a fine solution for me, but not something I can suggest to random users somewhere across the globe. I’ve been looking for more general solutions, but I’m not finding anything very convenient. So, in the meanwhile, I decided to hack something up…

Take a Memo

If the user’s Local Area Network (LAN) is connected to the Internet, one plausible (albeit rather peculiar) possibility would be to have the RasPi “call home” at boot time, accessing a specialized web page. For example, this URL might say that a Perkian system named frodo booted up and received a (local) IP address of 192.168.1.42:

http://pa.cfcl.com/memo?hn=frodo&ip=192.168.1.42&os=perkian

The user could then browse to a personalized report page, which would display the URLs used by the (most recent) calls from the user’s external IP address. Something like this:

Memos for 127.0.0.1

2020-02-20T07:48:04.852401Z

hn:        frodo
ip:        192.168.1.42
os:        perkian
...

Given the power of Elixir and the Phoenix framework, it only took a few dozen lines of code to add this capability to Pete’s Alley. Feel free to give it a try…

Related Work

Zero-configuration networking (zeroconf) is an important issue for the Internet of Things (IoT). After a user installs a device, they may need to connect to it in order to adjust its configuration, etc.

Bonjour and Avahi

Bonjour was developed by Apple, but licensed implementations are available from other vendors. For example, free downloads of Bonjour for Windows are readily available. Avahi is the de facto standard for zeroconf in the Linux community. It tends to be installed by default on most Linux systems and interoperates with Apple’s Bonjour protocol.

Wireless Network Watcher

Wireless Network Watcher is a small utility that scans your wireless network and displays a list of all computers and devices that are currently connected to your network. For every computer or device that is connected to your network, the following information is displayed: IP address, MAC address, the company that manufactured the network card, and optionally the computer name.