я использую PHP MaxMind GeoIP
для получения местоположения пользователя.
Я загрузил оба файла для проверки: GeoLiteCity.dat
а также GeoIPCity.dat
Вот мой php
код:
$ip = "189.90.207.67";
$gi = geoip_open("data/GeoLiteCity.dat", GEOIP_STANDARD);
$record = geoip_record_by_addr($gi, $ip);
print "Ip: ".$ip."<br>";
print "Country: ".$record->country_name . "<br>";
print "Region: ".$record->region. "<br>";
print "city: ".$record->city . "<br>";
print "latitude: ".$record->latitude . "<br>";
print "longitude: ".$record->longitude . "<br>";
geoip_close($gi);
Результат:
Ip: 189.90.207.67 Страна: Бразилия Регион: город: широта: -23.5477 долгота: -46.6358
Возвращенные координаты отличаются от MaxMind:
https://www.maxmind.com/en/geoip-demo
ip: 189.90.207.67
Координаты, которые я получил в своем коде от моего провайдера, которые отличаются от
GeoIPCity.dat
который был пуст для всех полей.
Почему результаты сайта и моего кода отличаются?
Демо онлайн использует коммерческую базу данных. Ваши коды запрашивают базу данных GeoLite.
Не следует ожидать одинаковых результатов от двух разных баз данных.
Других решений пока нет …