1

We are developing hybrid application using WL6.2. In our adapter we have this code:

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();

I'm not able to get the client IP address on the adapter, and our web services only see one IP address which is the Data power IP.And In the logs I see our Data power IP address as "orginatingIP". which means "getRemoteAddr()" is being executed.

<OriginatingIP>DataPowerIP</OriginatingIP>

If I kept only this part of code:

var request = WL.Server.getClientRequest(); 
var IPAddress = request.getHeader('X-Archieved-Client-IP');
commonParams.originatingIp = IPAddress;

I'm getting value as "null".

<OriginatingIP>null</OriginatingIP>

I tried also this solution "IBM Worklight 6 - How would i get client IP address on adapter side" also didn't work.

any suggestions please? thanks

Community
  • 1
  • 1
Sami
  • 587
  • 5
  • 20

2 Answers2

2

I will update your adapter as follow

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;
}

From this post https://developer.ibm.com/answers/questions/10123/how-do-you-get-the-original-ip-doing-the-request-to-your-bluemix-app.html it looks like you should use x-client-ip instead of using X-Archieved-Client-IP

Yoel Nunez
  • 2,078
  • 1
  • 10
  • 18
0

This Thread worked for me.

what is the right way to get request's ip

Try request.getRemoteAddr()

Santhanam
  • 330
  • 4
  • 15