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