Solved

Getting client remote address

Posted on 2010-09-01
12
616 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
  • 7
  • 2
  • 2
  • +1
12 Comments
 
LVL 40

Expert Comment

by:gurvinder372
ID: 33583868
0
 

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
 

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
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

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 250 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

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
bunnyEars2 challenge 6 70
countHi challenge 25 86
Core Java. What output will be and why ? 6 58
backtracking recursion  code 19 41
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

747 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now