6

WindowsフォームクラスライブラリをMetroAppクラスライブラリに移行しています。その中には、以下のホスト名から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

しかし、MetroAppSystem.Netにはまたはがないことを確認しましたIPHostEntry。。DnsIPAddress

誰かが手段を知っているなら、Windows8メトロアプリでこれらの代替品を教えてください。

4

2 に答える 2

2
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;
    } 
于 2014-05-17T19:32:51.403 に答える
1

Metro /WinRTでホスト名をIPアドレスに解決する方法を確認してください。'http'をhttpsに置き換えて試してください。

すなわち

await clientSocket.ConnectAsync(serverHost, "https");
于 2012-11-21T09:54:40.297 に答える