1

我需要在我的 wcf 程序中确定调用计算机的主机名。以下代码仅在我提供 ipv4 地址时才有效:

  System.Net.IPAddress[] addresses = System.Net.Dns.GetHostAddresses("fe80::5423:9721:ff08:a07e");

  System.Net.IPHostEntry entry = System.Net.Dns.GetHostEntry(addresses[0]); //"192.168.0.107"); //fe80::5423:9721:ff08:a07e");
  string hostName = entry.HostName;

调用计算机是 Win8 RTM 机器,仅提供 ipv6 地址,因此我的 wcf 程序中的以下代码因未知主机错误而失败:

OperationContext context = OperationContext.Current;
MessageProperties prop = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint =
    prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
ipAddress = endpoint.Address;


System.Net.IPHostEntry entry = System.Net.Dns.GetHostByAddress(ipAddress);
hostName = entry.HostName;
aliases = entry.Aliases.ToList<string>();

上面的代码包括一些尝试的解决方法:-)

我到处搜索都没有运气 - 有什么想法吗?

4

0 回答 0