30 lines
1.0 KiB
Java
30 lines
1.0 KiB
Java
package com.baeldung.spring.service;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.net.InetAddress;
|
|
|
|
import com.baeldung.spring.form.GeoIP;
|
|
import com.maxmind.geoip2.DatabaseReader;
|
|
import com.maxmind.geoip2.exception.GeoIp2Exception;
|
|
import com.maxmind.geoip2.model.CityResponse;
|
|
|
|
public class RawDBDemoGeoIPLocationService {
|
|
private DatabaseReader dbReader;
|
|
|
|
public RawDBDemoGeoIPLocationService() throws IOException {
|
|
File database = new File("your-path-to-db-file");
|
|
dbReader = new DatabaseReader.Builder(database).build();
|
|
}
|
|
|
|
public GeoIP getLocation(String ip) throws IOException, GeoIp2Exception {
|
|
InetAddress ipAddress = InetAddress.getByName(ip);
|
|
CityResponse response = dbReader.city(ipAddress);
|
|
|
|
String cityName = response.getCity().getName();
|
|
String latitude = response.getLocation().getLatitude().toString();
|
|
String longitude = response.getLocation().getLongitude().toString();
|
|
return new GeoIP(ip, cityName, latitude, longitude);
|
|
}
|
|
}
|