Actually it is possible. And there is an easy way to automate it.
here's how. and a mockup script to get you started (it's fully functional)
Register an account at afraid.org and use them as your name servers. If you want free then you have to allow that others can (either request or use freely) any subdomain on your domain for whatever they want. Select that each request needs your approval, meaning you won't be giving those, and no one else will use your domain. Or just pay 5^
make no-ip or rather dyndns account and pick up one of their free subdomains for your host (since no-ip started doing monthly captcha's for free users) you will use this domain to compare it to ip which your actual domain points to
(Note, you can use just your WAN ip if you can get it, I am posting this way because some people can't get it from their routers/modems etc, it's also possible to use something like whatismyip/com/org/net whatever.
Or to simply run the update script below periodically)
Create bash or whatever script which looks something like this:
#!/bin/bash
#
#
# don't forget to setup noip service
# RIP var will be our real IP and CIP will be Current IP which afraid org
#nameservers point to.
#Also if you don't delete or replace the "ip.of.nameserver.here.if.you.want" with
#actual name server which you want to use instead of a default one.
#Please kill me
RIP=`nslookup yourhost.dyndns.org ip.of.nameserver.here.if.you.want | grep Address: | awk 'NR==2 {print $2}'`
CIP=`nslookup yourdomain.com ip.of.nameserver.here.if.you.want | grep Address: | awk 'NR==2 {print $2}'`
if [ $RIP = $CIP ] # is ip of your dyndns/no-ip host same as your domain ip
then
echo "yay it's same" #you don't really need this, but just to ilustrate
else
echo "They are not the same, updating..."
#again you don't need this line either, but the one below uses uri you will get from
#afraid.org which you will use, for example with lynx or however you want, to update your dns entry to your current ip
lynx -dump "http://freedns(dot)afraid(dot)org/dynamic/update.php?YOUR_UNIQUE_UPDATE_CODE_GOES_HERE" > /dev/null
fi
.
3. create cron.d job that runs say once every few minutes and executes the ip.sh script mentioned above.
crontab entry should look something like this:
*/10 * * * * /path/to/script/ip.sh >/dev/null 2>&1
- ???
- Profit!
Now you can host your domain on dynamic ip and you've done everything in 5 minutes.
I win.