0

我尝试获取正确的 IP 但我不能

我正在使用这段代码:

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

但这对我不起作用!

例如,我的真实 IP 是151.246.147.86 ,但使用此代码我得到192.168.1.2.

注意:我有 4 个网络适配器,并且在带有 IPConfig的 DOC 中我看到了这个:

Network adapter: Local Area Connection 6
Media state : Media disconnected

Network adapter: Local Area Connection 4
Media state : Media disconnected

Network adapter: Local Area Connection 3
IP Address: 10.10.255.222

Network adapter: Local Area Connection
IP Address: 192.168.1.2

现在我连接到网络并使用“本地连接”;我的 WAN 连接的公共 IP 是151.246.147.86. 我想获得这个公共 IP ( 151.246.147.86),我该怎么做?

注意:我不想(而且我不能,因为我使用的是 VPN)使用第三方网站来获取我的 IP

请帮忙!

- - - -编辑 : - - - - - - -

注意:我从 VPN 使用,我的 VPN IP(例如)是:176.227.197.111。但是我的 WAN 的 IP 是:151.246.147.86我想得到这个地址。

4

4 回答 4

1

除非有某种方法可以查询您的路由器/调制解调器/最外部端点的 WAN 地址,否则您的要求是不可能的。您的计算机知道的唯一 IP 地址是它自己的(内部 IP)。

技术说明:IP 地址 192.168.1.2 没有任何非“真实”的信息 - 这您计算机的地址。它只是您给定的内部网络的本地网络,对外部的任何东西几乎没有用处。


如果您的路由器支持 uPnP,则需要查询GetExternalIPAddress(起点Is there a UPnP Library for .NET (C# or VB.NET)?)。然而,由于 uPnP 被认为是危险的,并且许多有安全意识的用户将其关闭,我不会指望它会被启用。

查询外部服务将是您获取外部 IP 的最可靠选择,无论是您编写的服务还是第三方服务(另请参阅https://superuser.com/questions/420969/services-that-just-return -your-public-ip-as-text)。

于 2013-03-11T08:19:52.617 回答
1

您(可能)正在使用路由器/调制解调器,因此 192.168.1.2 是您的“真实 IP”。您的调制解调器/路由器将位于同一(专用)网络上,其公共接口 (WAN) 将具有公共 IP。因此,您需要在调制解调器/路由器的公共接口上获取 IP。

如何获取调制解调器的 WAN IP 取决于您的标记和型号;如果它支持 UPnP,您可能会这样做,或者如果它是企业级路由器,它也可能支持 SNMP……您应该指定您的品牌和型号。

不使用外部站点的另一种方法:对已知站点(谷歌?)进行跟踪,第一跳将是您的路线。此外,如果您在 VPN 上,您也许可以使用相同的技术。例如,如果您知道 VPN 上的另一台主机(可能是服务器?),您可以 ping/tracert 它并从那里发现您的路由器。我不知道在这种情况下你是否会获得你所谓的“真实 IP”(顺便说一下,你一开始是怎么知道这个 IP 的?你可能能够以同样的方式获得它,以编程方式) .

基于 VPN 方案的另一种解决方案:您可以使用 Windows 来帮助您。Windows 有某种 VPN 管理 (RAS) 可以帮助您;我建议从这里开始了解基础知识,然后寻找一个库/SDK 来帮助你(一个快速的谷歌返回http://dotras.codeplex.com/)。

于 2013-03-11T08:23:23.480 回答
0

有很多方法和教程教你如何找到一个ip地址,我使用这个工具http://www.ipgp.net/显示任何ip地址的信息,只要在框中输入任何IP地址,你就会得到每个查询的国家、城市、地区、ISP、街道地址和卫星位置图。

于 2013-04-02T12:17:45.470 回答
-1

you're trying to get your IP address from your computer or a server? It will make a lot of difference. If you're trying to get your IP address from your computer/laptop use http://www.howtochangeipaddress.com. Your IP will pop up in front of you soon you enter the site.

于 2014-04-15T05:07:13.050 回答