Java find location using Ip Address
By:Roy.LiuLast updated:2019-08-18
In this example, we show you how to find a location (country, city, latitude, longitude) using an IP address.
1. GeoLite Database
The MaxMind provides a free GeoLite database (IP Address to Location).
2. GeoLite Java Example
An example to use GeoIP client Java APIs to find a location using IP address.
GetLocationExample.java
package com.mkyong.analysis.location; import java.io.File; import java.io.IOException; import com.maxmind.geoip.Location; import com.maxmind.geoip.LookupService; import com.maxmind.geoip.regionName; import com.mkyong.analysis.location.mode.ServerLocation; public class GetLocationExample { public static void main(String[] args) { GetLocationExample obj = new GetLocationExample(); ServerLocation location = obj.getLocation("206.190.36.45"); System.out.println(location); public ServerLocation getLocation(String ipAddress) { File file = new File( "C:\\resources\\location\\GeoLiteCity.dat"); return getLocation(ipAddress, file); public ServerLocation getLocation(String ipAddress, File file) { ServerLocation serverLocation = null; try { serverLocation = new ServerLocation(); LookupService lookup = new LookupService(file,LookupService.GEOIP_MEMORY_CACHE); Location locationServices = lookup.getLocation(ipAddress); serverLocation.setCountryCode(locationServices.countryCode); serverLocation.setCountryName(locationServices.countryName); serverLocation.setRegion(locationServices.region); serverLocation.setRegionName(regionName.regionNameByCode( locationServices.countryCode, locationServices.region)); serverLocation.setCity(locationServices.city); serverLocation.setPostalCode(locationServices.postalCode); serverLocation.setLatitude(String.valueOf(locationServices.latitude)); serverLocation.setLongitude(String.valueOf(locationServices.longitude)); } catch (IOException e) { System.err.println(e.getMessage()); return serverLocation;
Output
ServerLocation [countryCode=US, countryName=United States, region=CA, regionName=California, city=Sunnyvale, postalCode=94089, latitude=37.424896, longitude=-122.0074]
References
From:一号门
Previous:jQuery and Java List example
COMMENTS