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