如何在.Net中获得正确的LAN IP(不包括vmware适配器等)

时间:2019-01-11 20:17:28

标签: c# .net vb.net

我需要一个程序来确定其LAN IP,其他LAN客户端将使用该程序来识别它。我发现的.Net代码返回所有IP地址,包括回送和VMWare接口,因此我获得了C类IP的列表。

我已经通读了:

Find correct Ip address returned by Dns.GetHostEntry

Getting server ip using Dns.GetHostEntry in c#

Get IP address from hostname in LAN

Dns.GetHostEntry returns multiple IP addresses

返回所有适配器(包括“正确的一个”)以及VMWare适配器等的示例代码。

public string GetLanIP()
{
    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;
}

我也尝试过创建到Internet服务器的UDP客户端,希望可以找到与之关联的LAN适配器,这样我就可以找到该适配器的IP地址,但是没有运气。

任何人都可以建议如何找到同一LAN上的其他计算机用来连接它的正确LAN IP吗?

1 个答案:

答案 0 :(得分:0)

您可以使用与示例目标IP地址关联的UDP端点(或者,如果需要默认路径,则不使用该端点),如此答案中所述:

https://stackoverflow.com/a/27376368/2557128