This week's book giveaway is in the Agile and other Processes forum. We're giving away four copies of The Mikado Method and have Ola Ellnestam and Daniel Brolund on-line! See this thread for details.
I want to track the physical location of the client i.e The client who has logged in to my site I want to know their city/town and country.
I think there are 2 steps
1. Get the ip address of the machine
2. Let your app talk to some other add which can give you location of the client based on IP
Does not look like a big task considering google can pin point to the city from which request originated in google analytics.
But in java this look a difficult task.
I cannot get IP from servlet API like getRemoteAddress() because it returns IP of the proxy
They probably don't (at least Google Maps doesn't). You will need to find a service out there that returns the geocode for you - based on IP - so you can find their location.\
I've used these guys for Google Maps geocode lookups and they're good:
http://geocoder.us/
No guarantee, of course
Bauke Scholtz
Ranch Hand
Joined: Oct 08, 2006
Posts: 2458
posted
0
If it returns the IP of a proxy, then you may need to check the x-forwarded-for request header. Public proxies will pass the client's IP address in there. If it isn't available either, then you're out of possibilities at the server side. Best what you can do is to run a piece of Java code at the client side which sniffs the local IP address and sends it to the server side. You can do that in form of a signed applet or webstart application which you embed in your JSP.