The core of it is getting an address from checkip.dyndns.org, but there’s one small problem. Some public hotspots also have a login – such as Starbucks. When I’ve connected, but before I log in, I’ll get a big jacked-up mess back. This script basically checks for the length of the string returned, and if it’s longer than an IP4 address is allowed to be, it returns 0.0.0.0 back for my conky script.
Even if you don’t use conky, you might find it to be a useful standalone script. Check it out on pastebin and try it out on your linux box.