Получить геолокацию входящего запроса при загрузке Spring

Я хочу знать местоположение пользователя, который находится в нашем веб-приложении. Информация должна содержатьCountryиCity. Я не могу найти хороший способ сделать это, используяJavaилиSpring Boot. я пытался использоватьGeoLite2-Cityно это дает мне исключение, говоря, чтоThe address 10.212.134.200 is not in the database.Я также получал это исключение на моемlocalhostс ip127.0.0.1. Ниже приведен код, который я использовал:

      // String ipAddress = httpServletRequest.getRemoteAddr();
public String getGeoLocation(String ipAddress) {
        String geoLocation = "";
        try {
            File database = ResourceUtils.getFile("classpath:GeoLite2-City/GeoLite2-City.mmdb");;
            DatabaseReader dbReader = new DatabaseReader.Builder(database).build();
            CityResponse response = dbReader.city(InetAddress.getByName(ipAddress));
            
            String countryName = response.getCountry().getName();
            String cityName = response.getCity().getName();
            String postal = response.getPostal().getCode();
            String state = response.getLeastSpecificSubdivision().getName();
            
            geoLocation = "Country: " + countryName + "cityName: " + cityName + "postal: " + postal + "state: " + state;
            
            System.out.println(geoLocation);
        } catch(Exception ex) {
            logger.error("Exception occured while trying to get GeoLocation of user: " + ex);
        }
        return geoLocation;
    }

Но я всегда получаю исключение.

Я только скачал и добавилGeolite2-cityфайл. Я также не подтвержден, если мне нужно добавить какой-либо другой файл. Зависимость, которую я добавил:

      <dependency>
    <groupId>com.maxmind.geoip2</groupId>
    <artifactId>geoip2</artifactId>
    <version>2.8.0</version>
</dependency>

Примечание:

GeoLite2 был одним из способов, который я использовал для получения геолокации пользователя. Если у вас есть лучший API или предложение, пожалуйста, предложите мне лучший способ получить текущую геолокацию пользователя.

0 ответов

Другие вопросы по тегам