我们如何在客户端上知道我们自己的外部ip地址?



如何在CLIENT(=我们的计算机)上知道我们自己的EXTERNAL IP地址;不是我们的内部IP地址,不是通过现有的网站,也不是通过我们为这个问题捏造的新网站;只是与纯客户端操作系统命令脚本和/或JavaScript?这可能吗?事实上,如果有人这样做,他们应该得到100万美元,因为据我所知,在这个星球上的任何网站上都没有人能想出这个问题的答案,A.R.

我想已经有人问过这个问题了,但是使用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;

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

希望有所帮助

正如Gricha提到的,它可以通过外部站点请求。还有一个开源项目也被托管。

你可以通过调用这个API获得JSON格式的外部IP信息:

curl http://ip2country.sourceforge.net/ip2c.php?format=JSON
在c#中,必须有一个类似的方法来调用web API

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

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

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

如果你不离开你现在的网络,你就无法做到这一点。

要知道你的IP地址,你需要问你的路由器。这是你的路由器给你的IP在他的网络。

要知道在他们的网络中属于你的路由器的IP地址-你需要向该网络中的某人询问你的IP。因为那个网络给了他一个IP。

最后,如果你想知道你的IP在你的ISP的网络之外-你需要问别人你的ISP的网络。

最新更新