如何获取Windows应用商店应用的本地网络IP地址

时间:2012-12-24 08:30:26

标签: c# networking windows-store-apps

我试图获取本地网络的IP地址。为此,我搜索并获取少量示例,但WindowsStore应用程序不支持这些类和方法,这是我提到的链接之一How do I get the Local Network IP address of a computer programmatically? (C#)

如何在WindowsStore应用中执行此操作? 有什么建议吗?

3 个答案:

答案 0 :(得分:6)

我相信OP已经得到了他需要的答案,但对于其他人来说,基于Roadrunner的代码:

public HostName getCurrentIPAddress()
{
    IReadOnlyList<HostName> hosts = NetworkInformation.GetHostNames();
    foreach (HostName aName in hosts)
    {
        if (aName.Type == HostNameType.Ipv4)
        {
            return aName;
        }
    }
    return null;
}

这将获得第一个IP地址(可能是唯一的一个,至少在我的计算机上)并将其作为主机名返回。要将其作为字符串,您可以随时拨打hostname.DisplayName

答案 1 :(得分:0)

答案 2 :(得分:0)

当我最近开始玩VS2013和我的第一个商店应用程序时,我坚持同一个点。我对C#没什么经验,但我希望我发现的VB也可以帮到你。 没错,“System.Net.DNS”的示例不适用于Store-Apps。但经过一些研究后,我发现了“Windows.Networking.Connectivity.NetworkInformation.GetHostNames”这个类,它不仅可以用来获取主机名,还可以用来获取IPv4和v6加法器。 下面的代码在Visual Basic

中工作正常
HostNamesObj = Windows.Networking.Connectivity.NetworkInformation.GetHostNames
     For Each HostName In HostNamesObj
        If HostName.Type = 0 Then
            ComputerNames= HostName.ToString
        End If
        If HostName.Type = 1 Then
            IPv4_Output = HostName.ToString
        End If
        If HostName.Type = 2 Then
            IPv6_Output = HostName.ToString
        End If
    Next

如果您成功将其转换为C#,我会对您的反馈感到非常高兴,因为那是我现在正在努力争取的重点。我刚刚意识到C#与VB有很多共同之处,但它对变量的类型声明要敏感得多! 所以: 祝你好运,RoadrunnerLI