WCF中的IPv4远程地址

Mar*_*scu 9 c# wcf tcp

如何获取WCF远程端点的IP地址有关?

我在调用工作流方法时使用此代码检索远程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;
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到的地址是":: 1".我不想要IPv6地址,我想要IPv4(127.0.0.1) - 任何强制这种方式?

mar*_*c_s 6

不,我不这么认为。您基本上只是在调用时读出客户端设置的属性。您唯一的选择是指示客户端(通过某些配置)始终使用 IPv4 而不是 IPv6(即一起关闭 IPv6)。

我不知道有任何 WCF 设置可以强制执行此操作-您必须深入研究网络堆栈,看看是否有任何方法可以使其使用 IPv4 地址而不是 IPv6。