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: 
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.
I don't see a language specifacation but I did it here in python: [Finding a public facing IP address in Python?](https://stackoverflow.com/questions/166545/finding-a-public-facing-ip-address-in-python)  
Basicly there is no way of doing it without relying on an external server, in this case I use <http://www.whatismyip.com/automation/n09230945.asp> which only provide the ip address.
Alternatively you could use your own script which in PHP would look like:

```
<?php
echo $_SERVER['REMOTE_ADDR'];
?>

```