Pergunta

É possível obter os detalhes da localização dos usuários de endereços IP em PHP.

Todas as sugestões ??

Graças

Foi útil?

Solução

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

Output:

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
)

Outras dicas

Você precisa usar algumas vacas de Geo Serviço IP

Um serviço gratuito que eu encontrei no google: geoplugin . Eles php snipplets de usar o seu serviço: geoplugin / php

Você pode dar uma olhada para o MaxMind banco de dados , e GeoIP PECL extensão .

No meu caso:

  • Eu instalei a extensão com "pecl install geoip"
  • E eu fiz o download do banco de dados geolitecity e copiados-lo para /usr/share/GeoIP/GeoIPCity.dat por isso é encontrado a extensão PECL.

Note também deve haver algum pacote PEAR ( PEAR::Net_GeoIP ) para ajudá-lo, se você não é possível instalar qualquer extensão PECL.


Depois de ter instalado tanto daqueles, você pode usar esse tipo de código:

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

E você vai obter este tipo de saída:

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

O que, no meu caso, é verdade: eu sou de fato na cidade de Lyon, FR

.

A pergunta inicial continua a ser relevante para muitos; Agora final de 2016).

A minha resposta depois de anos de experiência com GEO localização é a seguinte ...

relato real de detalhes de localização além de "País" não é confiável. Toda a informação é adquirida a partir do registro IP # ISP e é essa informação relevante que é regularmente actualizado e passou pelos principais fornecedores de dados. Como IP nº s são descartados ou comprou os fornecedores devem obter os detalhes sobre o registro / muda das empresas em causa (ou seja, ISPs). A maioria dos números são obtidos em "blocos", mas não todos necessariamente relevantes para o mesmo servidor.

* Muitos (? Se não a maioria) dos sites menores corsário fornecendo informações para o uso público do "MaxMind" FREE db e (indevidamente) passar isso para o público; leia ressalvas MaxMind. sites menores não têm os recursos para a atualização constante dos registros de autoridade.

O MaxMind livre e DBS "IP2Location" são um subconjunto menor de seu salário-de bases de dados; ver suas advertências para explicação sobre o que está faltando.

comprados em blocos Muitos IP # s são compartilhados através de qualquer número de servidores e isso leva a informações ambigüidade. Quando usando uma ligação de rede sem fios a um ISP, em oposição a uma ligação ADSL bla provavelmente estável com fio / cabo /, o errora pode ser muito surpreendente porque de largo especialmente posicionamento dos servidores de rede ISP (afinação); na maioria dos casos não-estático mudando entre as sessões e talvez até mesmo alguns durante cada sessão.

Como exemplo, quando usando um dongle laptop wireless de roaming para conexão ISP sou frequentemente citado como sendo em outro estado, e que pode ser (aqui em AU) em qualquer lugar de centenas a milhares de kms de distância de minha posição real.

você pode ... com PHP ?

Usando o grande par de fornecedores DB (ie ip2location.com) um terá acesso a scripts do lado do servidor disponíveis que podem ser utilizados para obter as informações necessárias. E em vez de um DB livre menos confiável a partir deles eu uso DB1 de IP2Location para obter os visitantes "País" apenas de que eu posso fazer o que eu quero via tanto Perl e PHP.

Eu também baixar AUTO e descomprimir, como por advertências de uso, a db binário em uma base mensal apenas depois que ele for atualizado. Obviamente acesso look-ups de uns próprios problemas do local Supera com aquisição e processamento remoto sob demanda.

Para os meus requisitos do IP2Location db completo foi consideravelmente mais barato do que MaxMind por ano. * No entanto, a db MaxMind LIVRE é mais extensa do que a IP2Location GRÁTIS DB.

Nota ao tentar obter visitantes de endereço e estaduais detalhes adicionais etc I sugerem fortemente que é apresentada de uma forma que o visitante pode fazer correções; para que não se deixe frustrada.

Cumprimentos.

 $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
)

Eu encontrei recentemente PHP GeoIPLocation Biblioteca

É um único arquivo PHP que você precisa incluir em seu script PHP. Ele procura automaticamente um banco de dados bem atualizado e retorna os detalhes de país para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top