Find Local Devices

A free little program to find devices with web pages on the local network, such as routers or web cameras.

Run Find-Local-Devices -- this link should download and the program and use Java to run it. You should be prompted with a question like: "This code is signed by Nick Parlante, but we don't really know who that is. Would you like to run this code?" The browser asks in this situation since you are getting code from the internet, and the browser needs to verify that you want to run it.

Try the Fast Search button first. Some computer/network combinations can't handle the fast version reliably, so you can try Slow Search as a fallback.

I wrote the program for the situation where I've plugged a web camera into my local network, and I need a quick and easy way to find its address. Or more specififcally, I wanted something so simple that my dad could use it to find a local web camera. It's written in Java, and I've tested it on Windows, Mac, and Linux.

.jar Download

Alternately you can download this find-local-devices.jar file and save it on your computer. On your computer, double click the find-local-devices.jar file to have Java run it.

The program depends on the Java Runtime Environment (JRE) which most machines already have installed (it's free and open source). See JRE download to get Java.

How It Works

The program uses a simple strategy: it just tries to open an http connection to 254 local addresses and notes which addresses respond in any way. The 254 addresses are generated brute-force from the local IP address, varying the least significant byte from 1..254. The fast version tries 40 addresses per second, which worked on all the machines I tried except for an old Windows XP Machine. The slow version tries 1 address per second, and it worked everywhere. The program's strategy only makes sense for ipv4, but currently that's what most of the world looks like. The program uses threads internally to overlap the many outstanding requests.

Share and enjoy!

Nick Parlante
nick.parlante@cs.stanford.edu