Question: How can i go about programaticaly getting the IP address of my network as seen from the Internet? Its obviously a property that my router has access to when it connects to the ISP. Is there any way to get this info from a router using a standard protocol. My only other option is to either find a WS which returns my IP address (suprisingly difficult to do), or just go to something like [whatismyip.com](http://www.whatismyip.com) and strip out all the HTML (very dirty and susceptable to change). Is there any other way???

Answer: 
Don't scrape whatismyip.com, see [here](http://whatismyip.com/automation.asp) for how you can call their API which just returns your address.

If you don't use this, you have to write something like it yourself, i.e. a host beyond your router which can report back your apparent address.

Note that webserver might not see your real WAN IP address because: 

* your ISP might be transparently
proxying HTTP traffic, and the server would see the IP of the
proxy. In that case, you'd typically
need to look for and parse a
[X-Forwarded-For](http://en.wikipedia.org/wiki/X-Forwarded-For) header.
* or, as Olaf noted, there may be another NAT router between you and the wide open Internet, in other words, the WAN address of *your* router is on a private network. The best you'd get from a service like whatismyip.com is the IP of the outermost NAT router.
I've voted up Paul Dixons answer because it seemed complete, but there's one more aspect to this:

* Your ISP might provide private addresses for you - this *does* happen with some ISPs. Depending on what you expect you might need a routable address that you don't have
* The proxy information that Paul mentions (HTTP-Header X-Forwarded-For) might be a non-routable address if you yourself have a proxy
* based on mixing all these aspects (getting a nonroutable address from your ISP and having a proxy yourself) you might get bizarre results.

These aspects are not the typical day to day situation, but depending on your needs you might want to take these into account.