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

时间:2012-06-26 22:05:02

标签: 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这个问题并找到了解决方案?

1 个答案:

答案 0 :(得分:7)

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