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>();
上記のコードには、試みられたいくつかの回避策が含まれています :-)
私は運がなくてもどこでも検索しました-何かアイデアはありますか?