如何获得正确的IP地址?

时间:2013-03-11 08:06:01

标签: c# ip-address

我尝试获取正确的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个网络适配器,在DOC中有 IPConfig 我看到了:

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

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

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

请帮忙!

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

注意:我使用VPN和我的VPN IP(例如):176.227.197.111。但我的广域网的IP是:151.246.147.86,我希望得到这个地址。

4 个答案:

答案 0 :(得分: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)。

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

您是否尝试从计算机或服务器获取IP地址?它会产生很大的不同。如果您尝试从计算机/笔记本电脑上获取IP地址,请使用http://www.howtochangeipaddress.com。很快您进入网站就会在您面前弹出您的IP。