我的路由器知道我的外部IP地址。我可以通过编程方式访问该IP地址吗?

时间:2013-07-18 17:22:49

标签: c# ip-address

我一直在浏览很多类似于我的问题:人们想要100%确定他们的外部IP地址(当我要求互联网连接时,我的ISP指定给我的那个)。那么,这些问题最具体的答案是:除非你问一些网络服务,否则你无法知道自己的网络IP地址。

为什么我的路由器确实知道这一点?我希望它从ISP本身得到它,并将其“写下来”。

所以,我的问题是:所有路由器之间是否有通用的,标准化的方式让他们把这条信息交给我(即我的ISP签名的IP地址)?我不介意即使它涉及COM互操作性或要求调用非托管代码。

详细说明:我想要一种方法来检索我的ISP分配给我的100%准确的IP地址,这意味着我只想要那个地址;不是其他接口或其他任何地址的列表。我发现很难相信这是不可能的。

编辑:我很抱歉,但其他问题与我提出的问题无关。我问的是路由器是否有某种标准API来查询它的公共IP。我不知道这些答案中的任何一个是如何回答我的问题的。


解决:有这样的标准。这是一个名为WANIPConnection的UPnP标准。它有一个名为GetExternalIPAddress的“动作”。但是,从C#程序中使用它似乎真的很难。但是我正在编辑我的问题,所以今后阅读它的人都会知道答案是肯定的。这是UPnP论坛http://www.upnp.org/的链接,以防任何人想要进一步追求这一点。还有这个开源项目http://opentools.homeip.net/dev-tools-for-upnp。最后一个项目有很多软件(工具),所有它的源代码(用C或C ++编写)都可用。我无法弄清楚如何解决我的问题,因为我不是那么聪明,但再次,如果有人想进一步追求这个,DevToolsForUPnP项目是另一件要检查的事情。

0 个答案:

没有答案