我正在将 Windows 窗体类库迁移到 Metro 应用程序类库。那里有一个代码块,它根据主机名给出 IP 地址,如下所示,
IPHostEntry ipHostInfo = Dns.GetHostEntry(Address);
IPAddress ipAddress = ipHostInfo.AddressList[0];// IPAddress.Parse(address);
IPEndPoint endPoint = new IPEndPoint(ipAddress, Port);
例如:
地址:talk.google.com
ip地址:xx.xxx.xxx.xx
但我看到 Metro App System.Net 中没有 IPHostEntry
或 Dns
或 IPAddress
。 .
如果有人知道,请告诉我这些在 Windows 8 Metro 应用程序中的替代品。
using System.Threading.Tasks;
public async static Task<string> ResolveDNS(string remoteHostName)
{
if (string.IsNullOrEmpty(remoteHostName))
return string.Empty;
string ipAddress = string.Empty;
try
{
IReadOnlyList<EndpointPair> data =
await DatagramSocket.GetEndpointPairsAsync(new HostName(remoteHostName), "0");
if (data != null && data.Count > 0)
{
foreach (EndpointPair item in data)
{
if (item != null && item.RemoteHostName != null &&
item.RemoteHostName.Type == HostNameType.Ipv4)
{
return item.RemoteHostName.CanonicalName;
}
}
}
}
catch (Exception ex)
{
ipAddress = ex.Message;
}
return ipAddress;
}