c# - 如何在 Metro/WinRT 中将主机名解析为 IP 地址?

标签 c# windows-8 windows-runtime microsoft-metro .net-4.5

我正在将 WP7 应用程序移植到 Windows 8 Metro,我遇到的(许多)转换障碍之一是根据主机名或 DNS 名称发现 IP 地址。以下是我之前在 WP7 中使用的示例:

DnsEndPoint dnsEnd = new DnsEndPoint("www.google.com", 80, AddressFamily.InterNetwork);
DeviceNetworkInformation.ResolveHostNameAsync(dnsEnd, IPLookupCallbackMethod, this);

我在网上搜索了解决方案并浏览了 Metro API,但我还没有找到任何东西。有没有其他人在使用 Metro/WinRT 时遇到过这个问题并找到了解决方案?

最佳答案

using Windows.Networking;
using Windows.Networking.Sockets;

HostName serverHost = new HostName("www.google.com");
StreamSocket clientSocket = new Windows.Networking.Sockets.StreamSocket();

// Try to connect to the remote host
await clientSocket.ConnectAsync(serverHost, "http");

// Now try the clientSocket.Information property
// e.g. clientSocket.Information.RemoteAddress
// to get the ip address

一旦 clientSocket 尝试连接,clientSocket.Information 属性将包含大量网络信息,包括远程主机信息(包括 IP 地址)。我只是输入了这个内联,所以我希望没有错误。希望这可以帮助!也试试 this link to msdn .

关于c# - 如何在 Metro/WinRT 中将主机名解析为 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216625/

相关文章:

c# - 从 WinForms 窗体显示 WPF 窗口绝对安全吗?

c# - 在 EntityDataSource 中使用参数化的 LIKE 子句

c# - 使用 Fluent nhibernate 配置自动收缩 sqlite 数据库文件

c# - Window 8应用程序:嵌套异步调用

windows-runtime - 无法加载 native DLL

c# - 在 EF4 和 SQL Compact 4 中使用 TransactionScope 时出错

javascript - Windows 8 应用程序中的按钮导航

c# - 检查应用程序是否在模拟器上运行

c# - 是否可以在 winrt 中创建自定义转换? (如 ContentThemeTransition)

c# - 在显示进度环 Winrt C# 应用程序时禁用 UI