?
Solved

Getting client remote address

Posted on 2010-09-01
12
Medium Priority
?
626 Views
Last Modified: 2013-11-23
Is there a way to get the client IP address when making  HTTP call ?. If a user types google.com i need to get the user IP address .
0
Comment
Question by:Micheal_Male
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 2
  • 2
  • +1
12 Comments
 

Author Comment

by:Micheal_Male
ID: 33583904
The InetAddress.getLocalHost().getHostName() or .getAddress() gives me the server address or IP where my application is running not clients IP address who is making a call. Just like in access.log you see IP addresses logged in.

Creating a servlet will be of no use also because i would like to pass that IP Address to one of my method outside the servlet in a seperate JAR file which is deployed within the web application. I was looking for something without need of extending the HttpServlet class and writing doPost()method to get the IP address of the client.

 
0
 
LVL 10

Expert Comment

by:Hegemon
ID: 33584134
The only way to get client's IP address is to use a servlet (or JSP): request.getRemoteAddr();
You can then pass it to another location as you need.
0
Stressed Out?

Watch some penguins on the livecam!

 

Author Comment

by:Micheal_Male
ID: 33584164
hmmm. But still that servlet will be called only if a user goes to that servlet URL which in my senario fails only if it is possible to have a servlet which is called everytime a user access the web app ? like a lisetener or a filter ?.
0
 

Author Comment

by:Micheal_Male
ID: 33584168
There are no JSP only third party servlet configurations.
0
 
LVL 10

Expert Comment

by:Hegemon
ID: 33584177
Looks like a filter servlet is the best solution for you.
0
 

Author Comment

by:Micheal_Male
ID: 33584226
finally i found a way without creating a servlet after reading the spring docs.
0
 
LVL 2

Expert Comment

by:calboronster
ID: 33589708
A word of caution over here is that if the user is behind an ISP which is a fairly common thing then the HTTPServlet methods (and other methods relying on client calls) will return the ISP address and not the machine IP.

In a typical production scenario, when one of the banking sites was used from inside a closed organization, all the front-end users from different machines returned the same ISP host IPs.

In such a case, it is best to use an applet with call to InetAddress.getLocalHost().getHostName() etc.
Again this is not a very foolproof method and might require you to signed applet.

It is never a good and secure idea to get the users' local details.
Also it makes your application non-flexible.
0
 

Author Comment

by:Micheal_Male
ID: 33592392
I agree with you but the calls made to the http request are all going to be running on the same network but different terminals.
Just take an example of wallgreens who have a server. That server is connected to several cash registers. Eaxh cash register makes a call to the server to either store a transaction etc. So if you use inetaddresss.getlocalhost then it returns the server ip address not the terminal ip who made the call to the server.
0
 
LVL 2

Accepted Solution

by:
calboronster earned 500 total points
ID: 33600686
You didn't get my suggestion quite correclty.

In case you want an accurate IP address rather than an intermediate firewall etc IP, then
1. write a signed applet, that runs on individual browser.
2 make that applet get the InetAddress.getLocalHost().getHostName() etc.
3. Pass back the address to the server.
0
 

Author Comment

by:Micheal_Male
ID: 33602107
Applet is not a solution for me but thanks for your input. I got your point what you are trying to say.
0
 

Author Closing Comment

by:Micheal_Male
ID: 33602141
Nice explanation and suggestion.
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Suggested Courses
Course of the Month12 days, 15 hours left to enroll

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question