0

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

4

4 回答 4

1

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

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

希望能帮助到你

于 2013-04-10T16:53:24.347 回答
1

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

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

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

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

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

于 2013-04-10T17:06:26.470 回答
0

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

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

于 2013-04-10T16:46:33.270 回答
0

如果不退出当前网络,您将无法做到这一点。

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

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

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

于 2013-04-10T16:51:11.023 回答