Lets assume that I am one of the software engineers that are working on a website and I am writing this piece of code that does something with the client's ip address.
The http request from the client, goes through the forward proxy of the ISP or the mobile service provider and then through the CDN which forward them into the application servers located within my datacenter.
When I am making a call in my code which runs on the application server tier, something like "request.getRemoteAddr()" in Java.
Note that I am not asking this from a Java API perspective. I am just curious what is the ip address that comes on the HTTP Payload. Is it always the ip address of the client (the desktop or the mobile phone) or something inbetween ?
Your ISP transmists directly your own IP adress.
A "transparent proxy" send its own ip, and add a
HTTP_VIA
orHTTP_X_FORWARDED_FOR
header with the IP of the user.An "anonymous proxy" send its own ip, and add a
HTTP_VIA
orHTTP_X_FORWARDED_FOR
header with a fake IP. So you know it's a proxy, but you don't know the ip of your user.A "high anonymous proxy" or "elite proxy" is just sending you its own IP without extra header.