关于How to get the IP address of a WCF remote endpoint?
调用工作流程方法时,我正在使用以下代码来检索远程IP地址:
private static string GetRemoteIP()
{
var oc = OperationContext.Current;
var mp = oc.IncomingMessageProperties;
var remp = mp[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
return remp == null ? "(unknown)" : remp.Address;
}
但是,我得到的地址是“:: 1”。我不想要IPv6地址,我想要IPv4地址(127.0.0.1)-是否可以强制执行此操作?
最佳答案
不,我不这么认为。基本上,您只需在调用时读出客户端设置的属性即可。您唯一的选择是指示客户端(通过某些配置)始终使用IPv4而不是IPv6(即,一起关闭IPv6)。
我不知道有任何WCF设置可以强制执行该设置-您必须深入研究网络堆栈,看看是否有任何方法可以使它使用IPv4地址而不是IPv6。
关于c# - WCF中的IPv4远程地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2028879/