Pregunta

¿Es posible obtener los detalles de la ubicación de la dirección IP de los usuarios en PHP.

Cualquier sugerencia ??

Gracias

¿Fue útil?

Solución

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

Salida:

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
)

Otros consejos

Es necesario utilizar algunas vacas de Geo IP Service

Un servicio gratuito que encontré en Google: geoplugin . Ellos php snipplets a utilizar su servicio: geoplugin / php

Puede echar un vistazo a la MaxMind base de datos , y el extensión PECL GeoIP .

En mi caso:

  • He instalado la extensión con "pecl install geoip"
  • Y he descargado el base de datos geolitecity y copié en /usr/share/GeoIP/GeoIPCity.dat por lo que se encuentra por la extensión PECL.

Nota también debe haber algún paquete PEAR ( PEAR::Net_GeoIP ) para ayudarle, si no se puede instalar cualquier extensión PECL.


Una vez que haya instalado ambas cosas, puede utilizar este tipo de código:

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

Y obtendrá este tipo de salida:

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

Lo cual, en mi caso, es cierto:. Soy de hecho en la ciudad de Lyon, FR

Salida del rel="nofollow PERA GeoIP biblioteca .

La pregunta inicial sigue siendo relevante para muchos; Ahora finales de 2016).

Mi respuesta después de años de experiencia con GEO localización es la siguiente ...

Propiedades de informes de detalles de la ubicación más allá de "País" no es fiable. Toda la información es obtenida desde el registro de IP # ISP y es que la información relevante que se actualiza periódicamente y se transmite por los principales proveedores de datos. Como IP # s se caen o se compraron los proveedores deben obtener los detalles acerca de la inscripción / cambios de las empresas en cuestión (es decir, los ISP). La mayoría de los números se obtienen en "bloques" pero no todos necesariamente relevantes para el mismo servidor.

* Muchos (? Si no la mayoría) de los sitios web de corsario pequeños proveedores de información para el uso público del "Maxmind" pase libre y db (incorrectamente) que en el público; leer advertencias Maxmind. sitios más pequeños no tienen los recursos para la actualización constante de los registros de autoridad.

El MaxMind libre y DBs "IP2" son un subconjunto más pequeño de su pago por las bases de datos; ver sus advertencias para la explicación de lo que falta.

Muchas IP # s comprados en bloques son compartidos a través de cualquier número de servidores y esto conduce a información ambigüedad. Cuando se utiliza una conexión de red inalámbrica a un ISP, en oposición a una conexión probablemente estable ADSL / cable / bla por cable, la errora puede ser bastante sorprendente debido especialmente amplio colocación de los servidores de red ISP (retransmisión); en la mayoría de los casos el cambio no estático entre las sesiones y tal vez incluso algunos durante cada sesión.

Como ejemplo, cuando se utiliza un dispositivo de seguridad portátil inalámbrico en itinerancia para la conexión ISP menudo me citan como estar en otro estado, y que puede ser (en este caso en AU) en cualquier lugar de cientos a miles de kilómetros de mi ubicación real.

¿Puede usted ... con PHP

El uso de la mayor par de proveedores de base de datos (es decir ip2location.com) uno tendrá acceso a los scripts del lado del servidor disponibles que se pueden utilizar para obtener la información necesaria. Y en lugar de una base de datos libre de menos confiable de ellos utilizo DB1 de IP2Location para obtener los visitantes "País" sólo desde la cual puedo hacer lo que quiero tanto a través de Perl y PHP.

También auto descarga y descomprimir, según advertencias de uso, el PP binaria sobre una base mensual justo después de que se actualiza. Obviamente el acceso look-ups de los propio sitio supera los problemas con el control remoto de adquisición y procesamiento bajo demanda.

Para mis requisitos del db COMPLETO IP2Location era considerablemente más barato que Maxmind por año. * Sin embargo, la Maxmind GRATIS db es más amplia que la IP2 GRATIS DB.

Tenga en cuenta cuando se trata de obtener los visitantes de dirección adicional y detalles de estado, etc. Te sugiero que se muestra en una forma en que el visitante puede hacer correcciones; para que no se dejan frustrado.

Saludos.

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

PHP GeoIPLocation Biblioteca

Es un solo archivo PHP que es necesario incluir en el script PHP. Se busca automáticamente una base de datos bien actualizada y devuelve los datos de campo para usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top