【问题标题】:How to get LocalNetwork IP Address For WindowsStore Apps如何获取 Windows 应用商店应用的本地网络 IP 地址
【发布时间】:2012-12-10 17:39:56
【问题描述】:

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

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

【问题讨论】:

  • 您认为 .NET 4.5 不支持哪些类和方法?还是您实际上在谈论 Windows 应用商店应用程序?
  • 是的。我在 WindowsStore 应用程序中尝试过。
  • 这与 .NET 4.5 完全不同,后者是以前桌面 .NET 版本的超集。请编辑您的问题,以后要更加小心。
  • 谢谢乔恩,但是商店应用程序可以做吗?如果可能的话,我该怎么做??

标签: c# networking windows-store-apps


【解决方案1】:

我相信 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

【讨论】:

    【解决方案2】:

    当我最近开始使用 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

    【讨论】:

      【解决方案3】:

      【讨论】:

      • 谢谢你,Marq,但我正在为 Windows 商店应用程序尝试这个。需要添加更多内容来支持这一点吗??
      猜你喜欢
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      • 2012-08-10
      • 2014-09-16
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      相关资源
      最近更新 更多