Ibm mobilefirst 获取Worklight适配器上的客户端IP地址

Ibm mobilefirst 获取Worklight适配器上的客户端IP地址,ibm-mobilefirst,worklight-adapters,Ibm Mobilefirst,Worklight Adapters,我们正在使用WL6.2开发混合应用程序。在适配器中,我们有以下代码: var request = WL.Server.getClientRequest(); var IPAddress = request.getHeader('X-Archieved-Client-IP'); if(IPAddress == null || IPAddress == undefined || IPAddress == "") { IPAddress = request.getHeader('X-Arch

我们正在使用WL6.2开发混合应用程序。在适配器中,我们有以下代码:

var request = WL.Server.getClientRequest(); 
var IPAddress = request.getHeader('X-Archieved-Client-IP');
if(IPAddress == null || IPAddress == undefined || IPAddress == "") {
    IPAddress = request.getHeader('X-Archieved-Client-IP');
}
if(IPAddress == null || IPAddress == undefined || IPAddress == "") {
    IPAddress = request.getRemoteAddr();
}
if(IPAddress == null || IPAddress == undefined || IPAddress == "") {
    //This will never happen, only for precaution.
    IPAddress = "192.168.1.1";
}

commonParams.originatingIp = (IPAddress)?IPAddress:request.getRemoteAddr();
我无法在适配器上获取客户端IP地址,我们的web服务只能看到一个IP地址,即Data power IP。在日志中,我看到Data power IP地址为“OrginingIP”。这意味着正在执行
“getRemoteAddr()”

<OriginatingIP>DataPowerIP</OriginatingIP>
我得到的值为“null”

null
我也尝试过这个解决方案“”也不起作用


有什么建议吗?谢谢

我将按如下方式更新您的适配器

var request = WL.Server.getClientRequest(); 

var ipAddress = request.getHeader('x-client-ip');

switch(ipAddress){
  case "":
  case null:
  case undefined:
    //This will never happen, only for precaution.
    ipAddress = "192.168.1.1";
  break;
}

从这篇文章看来,你应该使用
x-client-ip
,而不是使用
x-archived-client-ip

这个线程适合我

尝试请求。getRemoteAddr()

<OriginatingIP>null</OriginatingIP>
var request = WL.Server.getClientRequest(); 

var ipAddress = request.getHeader('x-client-ip');

switch(ipAddress){
  case "":
  case null:
  case undefined:
    //This will never happen, only for precaution.
    ipAddress = "192.168.1.1";
  break;
}