I've been browsing a lot of questions somehow similar to mine: People want to know with 100% certainty their external IP Address (the one my ISP assigns to me when I ask for an internet connection). Well, the most concrete answer to those questions is: You cannot know your own internet IP address, unless you ask some web service.
How come my router does know that? I'd expect it got it from the ISP itself, and got it "written down".
So, my question is: Is there an universal, standardized way among all routers to ask them to hand me over that piece of information (i.e. my IP Address as signed by my ISP)? I don't mind even if it involves COM interoperability or something to call on unmanaged code.
To elaborate: I want a way to retrieve the IP address assigned to me by my ISP that is 100% accurate, meaning I just want that one address; not a list of addresses for other interfaces or anything else. I find it really hard to believe it's impossible to achieve this.
Edit: I'm sorry but that other question has nothing to do with what I asked. I was asking if routers had some kind of standard API for querying it for it's public IP. I don't see how any of those answers is an answer to my question.
Solved: There is such standard. It's a UPnP standard called WANIPConnection. It has an "action" called GetExternalIPAddress. It seems REALLY difficult to use from a C# program though. But I'm editing my question just so anyone reading it in the future will know the answer to it is YES. Here's a link to the UPnP Forum http://www.upnp.org/ in case anyone wants to pursue this any further. There's also this Open Source project http://opentools.homeip.net/dev-tools-for-upnp. This last project has a lot little softwares (tools), and all it's source code (written in C or C++) is available. I couldn't figure out how to solve my problem because I'm not that smart, but again, if anyone would like to pursue this any further, that DevToolsForUPnP project is another thing to check out.