2015-11-05 2 views
0

Я использую PHP MaxMind GeoIP для получения местоположения пользователя. я загружал оба файла теста: GeoLiteCity.dat и GeoIPCity.datPHP Получение местоположения с IP-адреса MaxMind GEOIP

Вот мой 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, результатом которой было пусто для всех полей.

Почему результаты сайта и моего кода отличаются?

+0

Демо-ссылка, на которую вы ссылаетесь, предназначена для платной базы данных. Это может объяснить разницу. –

+0

Спасибо. Знаете ли вы какую-либо бесплатную услугу с такой точностью? – Philippe

ответ

0

Демо-версия предназначена для коммерческого использования. Ваши коды запрашивают базу данных GeoLite.

Вы не должны ожидать одинаковых результатов от двух разных баз данных.

+0

Спасибо. Знаете ли вы какую-либо бесплатную услугу с такой точностью? – Philippe

+0

Попробуйте IP2Location LITE http://lite.ip2location.com Имеет информацию о городе в базе данных LITE. –

Смежные вопросы