title: Java library to get geo-code from ipaddress
body: <p>My application knows the IP address of the user.
  We need to identify the city, state, country of the user and latitude &amp; longitude of the user.</p>
  
  <p>Is there a java library that can do this?</p>
  
  <p>If there is none, what is algorithm or data-source used to convert IP address to geo-graphic location?</p>