Meaningless Drivel is fun!
The moose likes Servlets and the fly likes Problems geting the request sender IP address Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Problems geting the request sender IP address" Watch "Problems geting the request sender IP address" New topic

Problems geting the request sender IP address

Frederico Zapelini

Joined: Jun 02, 2004
Posts: 3
I�m using apache as a proxy in port 80, so when it receives a request it forward the request to Jboss in the same machine. I have a servlet that gets the request sender IP address, but instead of geting the real IP adrress it gets the local valid address (my apache/Jboss server). In my action I use the method request.getRemoteAddr(). I also try to use request.getHeader(headerName) and I found some thing very intresting:

java.util.Enumeration enum = request.getHeaderNames();
while(enum.hasMoreElements()) {
String headerName = (String) enum.nextElement();
String headerValue = request.getHeader(headerName);
System.out.println("-----------------" + headerName + " : " + headerValue);

After runing this code I get the output:

-----------------accept : image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/, application/, application/msword, */*
-----------------referer : "Url"
-----------------accept-language : pt-br
-----------------content-type : application/x-www-form-urlencoded
-----------------accept-encoding : gzip, deflate
-----------------user-agent : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
-----------------host : "host name"
-----------------content-length : 99
-----------------connection : Keep-Alive
-----------------cache-control : no-cache
-----------------cookie : JSESSIONID=CD2572BA90ED1C220A2DE648C6B5E293

As you can see the request does not have the REMOTE_HOST or HTTP_X_FORWARDED_FOR, it only lists those fell headers. But if I use request.getRemoteAddr() it returns the local valid IP address and not the real request sender IP address. Why my lopp did�t list all the http headers, including REMOTE_HOST??? So the question is:

Is there a configuration at Apache so when it act as a proxy my action can get the real request sender IP address?
Can I use another method or way to get the user IP address?

Somebody please help!!!
[ April 26, 2006: Message edited by: Frederico Zapelini ]
Sarath Mohan
Ranch Hand

Joined: Mar 17, 2001
Posts: 213
How do you set up Apache as Proxy server? If you set it up as a web server and you access this server from some other machine in the network, surely u will get remote IP

Sarath Mohan
I agree. Here's the link:
subject: Problems geting the request sender IP address
jQuery in Action, 3rd edition