Track IP Address using DD-WRT + CRON + WGET
Support this website by purchasing prints of my photographs! Check them out here.After moving to my new apartment, it was time to dust off the old Linksys router I had lying around. This thing has been hacked to run the latest DD-WRT that it could handle.
My network address changes occasionally, and I didn't want to setup any dyndns accounts to keep track of the IP and have it resolve to a hostname. Honestly, just being able to get the last IP address is good enough for me.
So, I came up with this script that I run on one of my websites which listens for HTTP requests. When it gets one, it simply logs the IP to a file and spits it back out to the client.
Then, whenever I want to grab the IP address of the home network, I just hit another URL to grab the IP. The script is requested from my router every hour.
Configuration
Open your DD-WRT settings, go to Administration | Management, and scroll down till you see the section on CRON. You can add the following rule to have your router grab the file every hour:
*/60 * * * * root wget http://example.com/ping.php
ping.php
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$handle = fopen("./ip.txt", 'w');
fwrite($handle, $ip);
fclose($handle);
echo $ip;
pong.php
<?php
echo file_get_contents("ip.txt");
Setup
touch ip.txt
chmod a+w ip.txt
Obtaining IP
Simply browse to http://example.com/pong.php
to get the last known IP address.