MOST newer router will do DDNS update automatically...
check with your router to see if it has this feature. My $10 rosewill router from newegg has this feature... as well as my 80 Asus router running on Tomato... so that's a pretty wide range of routers that support it.
So here goes... my personal IP address from my ISP is [111.111.111.111] for example...
My arduino is [198.236.0.2] since it's on the local network... my router is going to be [192.236.0.1].
Now, my router HTTP server is set to be on port 8080 instead of port 80, or any other port... This leave port 80, the default web server port open for the arduino.
Now, go to port forwarding, and forward port 80 to IP address [192.168.0.2] or whatever the port of your arduino is.
Once all this is done, you should be able to go to your IP address, [111.111.111.111], and see the arduino HTML interface... and then go to 111.111.111.111:8080, and you'll see the router interface.
Next step is DDNS.... since my IP is dynamic... meaning 111.111.111.111 will change at the will of the ISP, so I wouldn't want to memorize this number... instead I sign up for
www.dyndns.org, which will mask my IP and monitor it for change automatically and route it to vinhtvu2.whatever.org... or whatever your heart desires...
So go to dyndns, sign up for an account, then create a dns name. Once you have this information, look in your router for the DDNS section, Dyndns.org is pretty big, so it should be supported if your router support DDNS. Then put in your username, and password... then set your refresh rate to be however often they change your IP address... I set mine to refresh every 48 hours... and it hasn't failed yet...
If you look at my other post... you can see it work pretty well. I use this to control all the lightings in my house now... if I'm home, I use 192.168.0.2 instead, since it's faster.