
My solution was a cron job that fetches a non-existent page from my website every 15 minutes. No need to find out the external IP in advance, just look at where the last request for the page came from; Users's crontab; */15 * * * * wget -O - http://zcat.geek.nz/foo >/dev/null My apache access.log; 118.92.239.44 - - [01/Oct/2008:08:02:12 +1200] "GET /foo HTTP/1.0" 404 201 "-" " Wget/1.10.2" DynDNS is also a viable option. There seem to be a number of ubuntu packages to handle it already, as well as some routers already have configuration for it; ddclient - Update IP addresses at dynamic DNS services ez-ipupdate - client for most dynamic DNS services inadyn - client to alleviate the requirements for an Internet name ipcheck - Dyndns.org client to register your dynamic IP address