我目前正在尝试将管理控制台应用程序移植到Win 10 UWP应用程序。我在以下控制台代码中使用System.Net.Dns遇到麻烦。

我如何获得设备IP

这是我尝试移植的控制台应用程序代码。

public static string GetIP4Address()
{
    string IP4Address = String.Empty;
    foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
    {
        if (IPA.AddressFamily == AddressFamily.InterNetwork)
        {
            IP4Address = IPA.ToString();
            break;
        }
    }
    return IP4Address;
}

最佳答案

您可以这样尝试:

private string GetLocalIp()
{
    var icp = NetworkInformation.GetInternetConnectionProfile();

    if (icp?.NetworkAdapter == null) return null;
    var hostname =
        NetworkInformation.GetHostNames()
            .SingleOrDefault(
                hn =>
                    hn.IPInformation?.NetworkAdapter != null && hn.IPInformation.NetworkAdapter.NetworkAdapterId
                    == icp.NetworkAdapter.NetworkAdapterId);

    // the ip address
    return hostname?.CanonicalName;
}

上面的答案也是正确的

关于c# - 如何在Win 10 UWP项目中找到本地IP地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33770429/

10-13 08:10