Ibm mobilefirst 获取Worklight适配器上的客户端IP地址
我们正在使用WL6.2开发混合应用程序。在适配器中,我们有以下代码: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
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;
}