繁体   English   中英

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

[英]WP7 Mango - How to get an IP address for a given hostname

我需要从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();
    }
  }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM