WP7芒果 – 如何获取给定主机名的IP地址

我需要从DnsEndPoint获取给定主机名的IP地址,并将其转换为IPEndPoint。 我该怎么做呢? WP7缺少Dns.GetHostEntry函数,所以有没有办法在不创建Socket的情况下执行此操作,向主机发送数据,然后从主机接收ping并读取RemoteEndPoint属性以获取主机的IP地址?

尝试在Microsoft.Phone.Net.NetworkInformation命名空间中使用DeviceNetworkInformation.ResolveHostNameAsync ,如下所示:

 public void DnsLookup(string hostname) { var endpoint = new DnsEndPoint(hostname, 0); DeviceNetworkInformation.ResolveHostNameAsync(endpoint, OnNameResolved, null); } private void OnNameResolved(NameResolutionResult result) { IPEndPoint[] endpoints = result.IPEndPoints; // Do something with your endpoints } 

没有办法在框架中构建这个。 您可以使用套接字来确定主机支持ping。 它取决于您运行的网络(我假设您无法控制它)以及应用程序的确切要求。

让您的应用程序使用IP地址可能更容易,如果您拥有的是IP地址,则不需要主机名。

我想我处理同样的问题。 我还有一个动态IP用No-ip更新dns。

据我所知,此版本的Windows Phone中没有System.Net.Dns。 也许在下一个版本中。

http://msdn.microsoft.com/en-us/library/system.net.dns.aspx

在我的应用程序开始时,我将创建一个Web服务调用主机(到其中的Web服务器),要求IPAddress。 我想我会在此期间解决问题。

这可能是WCF服务

 [ServiceContract] public interface IService1 { [OperationContract] string GetIpAddress(string value); } public class Service1 : IService1 { public string GetIpAddress() { // Add the proper error handling and collection matching of course IPAddress s = Dns.GetHostAddresses("www.mysite.com")[0]; return s.ToString(); } } 

如果你们找到直接的方法,请告诉我