c#-wcf客户端ip作为ipv6
作者:互联网
我正在使用下一段代码来获取wcf服务上的客户端ip:
OperationContext context = OperationContext.Current;
System.ServiceModel.Channels.MessageProperties prop = context.IncomingMessageProperties;
System.ServiceModel.Channels.RemoteEndpointMessageProperty endpoint = prop[System.ServiceModel.Channels.RemoteEndpointMessageProperty.Name] as System.ServiceModel.Channels.RemoteEndpointMessageProperty;
string ip = endpoint.Address;
当此代码在iis6 / server2003上运行时,一切正常,endpoint.Address返回了ipv4.
但是在我最近更新到iis7 / server2008端点之后.地址返回了ipv6.
仍然有可能在iis7 / server2008上获得ipv4吗?
谢谢 !
解决方法:
WCF的变化与其说是网络的变化,不如说是WCF的变化.您的客户端已使用其IPv6连接到服务器,这是存储在消息上下文中的地址.如果您需要掌握IPv4,请使用以下代码段:
IPAddress ipAddress = IPAddress.Parse(ipv6);
IPHostEntry ipHostEntry = Dns.GetHostEntry(ipAddress);
foreach (IPAddress address in ipHostEntry.AddressList)
{
if(address.AddressFamily == AddressFamily.InterNetwork)
Console.WriteLine(address);
}
这会将您的IPv6转换为IPv4.
标签:wcf-client,iis-7,wcf,c 来源: https://codeday.me/bug/20191209/2097825.html