2013-04-10 37 views
0

我们如何知道我们自己的客户端(=我们的计算机)上的EXTERNAL IP地址;不是我们的内部IP地址,而不是通过现有的网站,而不是通过我们为此问题制作的新网站;只使用纯客户端操作系统命令脚本和/或JavaScript?那可能吗?事实上,如果有人认为他们应该收集100万美元,因为据我所知,没有人在这个星球上的任何一个网站上拿出答案。我们怎样才能知道我们自己的客户端上的外部IP地址

+0

OK,C#(或Java等),也可以用作每个问题,但如果可能的话,将给予一个更复杂的答案。 A.R. – 2013-04-10 20:43:47

回答

1

我认为的确有人ask that already,但使用C#

IPHostEntry host; 
string localIP = "?"; 
host = Dns.GetHostEntry(Dns.GetHostName()); 
foreach (IPAddress ip in host.AddressList) 
{ 
    if (ip.AddressFamily == AddressFamily.InterNetwork) 
    { 
     localIP = ip.ToString(); 
    } 
} 
return localIP; 

我不知道您的目标操作系统,但您可以创建一个控制台应用程序,并从中读取

希望值它有助于

+0

我会尝试,如果不满意,请看看您指出的其他问题,非常感谢。 A.R. – 2013-04-10 20:45:53

0

从简单的系统调用中找不到外部IP地址。您可以从路由器接收它,这可能是与路由器相关的,或者您需要通过局域网外的某个设备拨打电话。通常这是通过HTTP请求或一些其他流行的互联网服务完成的。

此外,本地网络上的个人计算机没有外部IP。路由器有一个地址并将数据包转发到单个设备。

+0

感谢您的回答,但不幸的是,您不会得到那么多的百万美元...此外,我们可以说,如果不存在,它应该(在这个可怕的信息时代)... – 2013-04-10 20:33:47

0

如果不走出现有的网络,您无法做到这一点。

要知道你的IP地址,你需要询问你的路由器。这是您的路由器,可以为您提供网络中的IP。

要知道属于您的路由器在他们的网络中的IP地址 - 您需要问在该网络中的人关于您的IP。因为这个网络给了他一个IP。

最后,如果你想知道你的ISP网络外的IP地址 - 你需要询问以外的人你的ISP的网络。

+0

我没有构成作为一个条件,你不能访问一个网络来获得它,只有你不能通过外部的手段......大多数情报,但无论如何感谢,AR – 2013-04-10 20:43:27

1

正如Gricha所说,它可以通过外部站点来请求。还有一个托管的开源项目。

您可以通过调用该API获得JSON格式的外部IP信息:

curl http://ip2country.sourceforge.net/ip2c.php?format=JSON 

在C#中,必须有一个类似的方法来调用Web API。

项目信息是在这里:http://code.google.com/p/ip-address/