• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

IP address and location of client

 
Ranch Hand
Posts: 174
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi

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

In one of the postings in java ranch I found this java script code to get IP address which I think works (I am yet to test it completly)
http://javascript.internet.com/user-details/ip-address.html

Now once I get the API I need to call another service to send me location of this client (If free , nothing like it).

I am not sure how this can be achieved. I also did not find any google API's which could offer this service.

Any suggestions and help would be appreciated.
 
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Ranch Hand
Posts: 2458
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic