2009-12-02 6 views

ответ

6
$ip = '98.229.152.237'; 
$xml = simplexml_load_file("http://ipinfodb.com/ip_query.php?ip=$ip"); 
print_r($xml); 

Выход:

SimpleXMLElement Object 
(
    [Ip] => 98.229.152.237 
    [Status] => OK 
    [CountryCode] => US 
    [CountryName] => United States 
    [RegionCode] => 33 
    [RegionName] => New Hampshire 
    [City] => Manchester 
    [ZipPostalCode] => 03103 
    [Latitude] => 42.9403 
    [Longitude] => -71.4435 
    [Timezone] => -5 
    [Gmtoffset] => -5 
    [Dstoffset] => -4 
) 
+0

спасибо, что я искал .... – Biranchi

+0

Не работает сейчас –

1

Проверьте PEAR GeoIP library.

+0

вы ссылаетесь на возврат 404 – Amirshk

+0

Извините. Подчеркнутый символ был закодирован. Исправлена. –

3

Вы можете взглянуть на maxmind database и GeoIP PECL extension.

В моем случае:

  • Я установил расширение с «pecl install geoip»
  • И я скачал geolitecity database и скопировать его в /usr/share/GeoIP/GeoIPCity.dat поэтому он нашел расширение PECL.

Примечание. Если вы не можете установить расширение PECL, также должен быть установлен пакет PEAR (PEAR::Net_GeoIP).


После того, как вы установили оба этих, вы можете использовать этот код:

$ip = '82.229.x.y';  // replace with your IP address 
var_dump(geoip_record_by_name($ip)); 

И вы получите этот вид продукции:

array 
    'continent_code' => string 'EU' (length=2) 
    'country_code' => string 'FR' (length=2) 
    'country_code3' => string 'FRA' (length=3) 
    'country_name' => string 'France' (length=6) 
    'region' => string 'B9' (length=2) 
    'city' => string 'Lyon' (length=4) 
    'postal_code' => string '' (length=0) 
    'latitude' => float 45.75 
    'longitude' => float 4.84999990463 
    'dma_code' => int 0 
    'area_code' => int 0 

который, на мой дело, верно: я действительно в городе Лион, FR.

0
$ip = "66.96.147.144"; 
    $geoPlugin_array = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $ip)); 
    echo '<pre>'; 
    print_r($geoPlugin_array); 

OUTPUT : 
Array 
(
    [geoplugin_request] => 66.96.147.144 
    [geoplugin_status] => 200 
    [geoplugin_credit] => Some of the returned data includes GeoLite data created by MaxMind, available from http://www.maxmind.com. 
    [geoplugin_city] => Burlington 
    [geoplugin_region] => MA 
    [geoplugin_areaCode] => 781 
    [geoplugin_dmaCode] => 506 
    [geoplugin_countryCode] => US 
    [geoplugin_countryName] => United States 
    [geoplugin_continentCode] => NA 
    [geoplugin_latitude] => 42.5051 
    [geoplugin_longitude] => -71.204697 
    [geoplugin_regionCode] => MA 
    [geoplugin_regionName] => Massachusetts 
    [geoplugin_currencyCode] => USD 
    [geoplugin_currencySymbol] => $ 
    [geoplugin_currencySymbol_UTF8] => $ 
    [geoplugin_currencyConverter] => 1 
) 
1

Исходный вопрос остается актуальным для многих; в конце 2016 года).

Мой ответ после многолетнего опыта работы с GEO размещая выглядит следующим образом ...

Real отчетности сведений о местоположении за пределами «Страна» ненадежно. Вся информация почерпнута из регистрации IP # ISP, и это релевантная информация, которая регулярно обновляется и передается основными поставщиками данных. По мере удаления или покупки IP-пакетов поставщики должны получить информацию о регистрации/изменениях соответствующих предприятий (например, интернет-провайдеров). Большинство чисел получены в «блоках», но не все они обязательно относятся к одному и тому же серверу.

* Многие (если не большинство?) Небольших частных веб-сайтов, предоставляющих информацию для общественности, используют БЕСПЛАТНЫЙ db «Maxmind» и (ненадлежащим образом) передают это публике; прочитайте оговорки Maxmind. Меньшие сайты не имеют ресурсов для постоянного обновления регистраций полномочий.

Свободные базы данных maxmind и «ip2location» являются меньшим подмножеством их баз данных с оплатой труда; см. их оговорки для объяснения того, чего не хватает.

Многие покупаемые в блоках IP-пакеты распределяются по любому количеству серверов, что приводит к неоднозначности информации. При использовании беспроводного сетевого подключения к интернет-провайдеру, в отличие от, вероятно, стабильного проводного соединения ADSL/кабель/бла, ошибка может быть весьма поразительной из-за особенно широкого размещения сетевых серверов ISP (ретрансляция); в большинстве случаев нестатические изменения между сессиями и, возможно, даже некоторые в течение каждого сеанса.

В качестве примера при использовании роуминг-портативного портативного компьютера для подключения к интернет-провайдеру я часто цитируется как находящийся в другом состоянии, и это может быть (здесь, в AU) где-нибудь от сотен до тысяч KM от моего фактического местоположения.

Можете ли вы ... с PHP?

Используя основную пару поставщиков БД (например, ip2location.com), у вас будет доступ к доступным скриптам на стороне сервера, которые могут быть использованы для получения необходимой информации. И вместо того, чтобы иметь менее надежную бесплатную БД из них, я использую DB1 ip2location для получения посетителей «Страна», из которых я могу делать то, что хочу, через Perl и PHP.

Я также автоматически загружаю и распаковываю в соответствии с требованиями к использованию двоичный дБ на ежемесячной основе сразу после его обновления. Очевидно, что доступ к просмотру с собственного сайта устраняет проблемы с удаленным приобретением и обработкой по требованию.

Для моих требований ip2location FULL db был значительно дешевле Maxmind в год. * Тем не менее, Maxmind FREE db более обширен, чем свободная БД IB2location.

Обратите внимание, что при попытке получить дополнительные адреса и данные о посетителях и т. Д. Я настоятельно рекомендую, чтобы он отображался таким образом, чтобы посетитель мог внести исправления; чтобы они не расстроились.

С уважением.

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

  • Нет связанных вопросов^_^