关于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/

10-10 13:53
查看更多