2010-03-02 21 views
19
chicos

HeyyCualquier API fiable disponible para determinar la ciudad y el país del usuario desde la dirección IP

quería comprobar si alguien sabe de una API fiable que podemos utilizar para determinar ciudad y el país del usuario de su dirección IP.

Mi búsqueda en Google llevó a http://ipinfodb.com/ip_location_api.php

Me parece perfecto, pero mi única preocupación es la fiabilidad de este servicio. google tiene algo como esto. Si conoces a cualquier otro de API gratuitas o de pago que ayudan a determinar la ubicación del usuario de su IP - por favor hágamelo saber

Gracias

+1

Get ciudad/país del IP: [su ciudad] (https://ipapi.co/city /), [Su país] (https://ipapi.co/country/), [Ciudad para IP 8.8.8.8] (https://ipapi.co/8.8.8.8/city/), [País para IP 8.8.8.8] (https://ipapi.co/8.8.8.8/country/) – user4150760

+0

Es algo irónico que ** ipinfodb.com **, el servicio que usted cuestionó desde el año 2010, todavía está en línea y realmente funciona bien (lo he usado yo mismo) –

Respuesta

7

que he usado http://www.hostip.info/ y lo encontró muy bueno.

+0

Gracias codaddict - déjame verlo – Gublooo

+2

IP comprobada que está en uso desde hace 2 años. Incluso no puede ubicar mi país. No estoy seguro de que sea bueno para las búsquedas internacionales ... – AlexeyVMP

+0

Encontré ese http://ip-api.com/docs/api:json para ser realmente bueno :) – thinklinux

5

Cada geolocalización de IP depende de los registros enviados por el ISP. Esto nunca será completamente confiable porque muchos ISP presentan la ubicación de su oficina en lugar de las ubicaciones físicas de sus subredes, que pueden estar en una ciudad o país diferente.

+0

Gracias SF - Probablemente usé el término equivocado - cuando quise decir confiable - Quise decir que el servicio debería ser rápido y no tener mucho tiempo de inactividad. Entiendo que nunca podemos determinar el 100% correctamente la ubicación.Esto es solo para rellenar el formulario para el usuario y luego puede cambiarlo si la ciudad o el país están equivocados – Gublooo

3

En cierto sentido, no se puede saber de manera fiable la ubicación de un usuario . El uso de los consejos que proporcionan las otras respuestas le dará la geolocalización de una IP, pero no hay forma de saber que esa dirección IP en Nueva York EE.UU. no se está accediendo a través de una VPN de alguien en un viaje de negocios a Londres, Reino Unido o si alguien está usando un servicio de anonimato como Tor.

+2

Gracias Frank - Probablemente use el término equivocado - cuando quise decir confiable - quise decir que el servicio debe ser rápido y no tiene mucho tiempo de inactividad Entiendo que nunca podemos determinar el 100% correctamente la ubicación. Esto es solo para rellenar el formulario para el usuario, que luego puede cambiar si la ciudad/país está equivocado – Gublooo

11

considerar el uso de geoplugin, proporciona la mayoría de la información de un código PHP sola línea, pero requiere una conexión con el servidor geoplugin.com para cada solicitud (y es gratis).

Ejemplos:

Json: http://www.geoplugin.net/json.gp?ip=74.125.236.174

{ 
geoplugin_request: "74.125.236.174", 
geoplugin_status: 200, 
geoplugin_city: "Mountain View", 
geoplugin_region: "CA", 
geoplugin_areaCode: "650", 
geoplugin_dmaCode: "807", 
geoplugin_countryCode: "US", 
geoplugin_countryName: "United States", 
geoplugin_continentCode: "NA", 
geoplugin_latitude: "37.419201", 
geoplugin_longitude: "-122.057404", 
geoplugin_regionCode: "CA", 
geoplugin_regionName: "California", 
geoplugin_currencyCode: "USD", 
geoplugin_currencySymbol: "$", 
geoplugin_currencySymbol_UTF8: "$", 
geoplugin_currencyConverter: 1 
} 

xml: http://www.geoplugin.net/xml.gp?ip=74.125.236.174

<geoPlugin> 
<script/> 
<geoplugin_request>74.125.236.174</geoplugin_request> 
<geoplugin_status>200</geoplugin_status> 
<geoplugin_city>Mountain View</geoplugin_city> 
<geoplugin_region>CA</geoplugin_region> 
<geoplugin_areaCode>650</geoplugin_areaCode> 
<geoplugin_dmaCode>807</geoplugin_dmaCode> 
<geoplugin_countryCode>US</geoplugin_countryCode> 
<geoplugin_countryName>United States</geoplugin_countryName> 
<geoplugin_continentCode>NA</geoplugin_continentCode> 
<geoplugin_latitude>37.419201</geoplugin_latitude> 
<geoplugin_longitude>-122.057404</geoplugin_longitude> 
<geoplugin_regionCode>CA</geoplugin_regionCode> 
<geoplugin_regionName>California</geoplugin_regionName> 
<geoplugin_currencyCode>USD</geoplugin_currencyCode> 
<geoplugin_currencySymbol>&#36;</geoplugin_currencySymbol> 
<geoplugin_currencySymbol_UTF8>$</geoplugin_currencySymbol_UTF8> 
<geoplugin_currencyConverter>1</geoplugin_currencyConverter> 
</geoPlugin> 

Otras opciones

+0

El único problema es que tiene una restricción. Además, puedes ser bloqueado. – Yusuf

4

Google tiene algo como esto.

No, Google no ofrece un servicio similar a este. (tenga en cuenta que la respuesta aquí que afirma que sí lo proporciona, no conduce a ninguna parte).

Cualquier otro de API gratuitas o de pago que ayudan a determinar la ubicación del usuario su IP

En primer lugar, es difícil hablar de fiabilidad de dicho servicio. La mayoría de los servicios confían en el ISP para obtener sus datos y el ISP no siempre proporciona datos confiables. Además, dado que supongo que básicamente le importa la ubicación de su usuario (y no a qué ubicación pertenece su IP), el usuario puede decidir ocultar su ubicación ya sea a través de VPN, Tor u otros anonimizadores.

En algunos de sus comentarios, he visto que por confiable significa tiempo de actividad del proveedor de API. Si es así, entonces recomendaría MaxMind's GeoIP2. En primer lugar, he visto este sitio durante mucho tiempo, se actualizan con bastante frecuencia (última actualización el 1 de abril de 2014); además, si tiene tanto miedo al tiempo de inactividad, puede download their database y no confiar en ellos (también lo son). gratis).

Otro servicio me gusta realmente is less known and opensource (parcialmente se basa en datos de MaxMind). Lo he usado solo unas pocas veces, así que no puedo decir que sea tiempo de actividad, pero realmente me gusta su API. Es tan simple, que es difícil de llegar a más sencillo:

http://www.telize.com/geoip/46.19.37.108 

o como esto

http://www.telize.com/geoip/2a02:2770::21a:4aff:feb3:2ee 

le dará

{ 
"country":"Netherlands", 
"dma_code":"0", 
"timezone":"Europe\/Amsterdam", 
"area_code":"0", 
"ip":"46.19.37.108", 
"asn":"AS196752", 
"continent_code":"EU", 
"isp":"Tilaa V.O.F.", 
"longitude":5.75, 
"latitude":52.5, 
"country_code":"NL", 
"country_code3":"NLD" 
} 

Creo que estos dos servicios son bastante suficiente para obtener información normal para sus visitantes. Pero una cosa importante. Si realmente necesita saber de dónde provienen los usuarios, ¿por qué no preguntar con html5 geolocation? Aquí hay un nice example, pero puede ir más allá (preguntarles si la ubicación es correcta y darles la posibilidad de cambiarla). Sé que en su caso solo necesita País/Ciudad, pero puede ser que otras personas lo necesiten.


P.S. Noviembre de 2015. Ahora que telize.com cuesta dinero a utilizar, he encontrado otro servicio que se encuentra en libertad:

https://freegeoip.net/json/45.79.8.237 
https://freegeoip.net/json/2600:3c00::f03c:91ff:fe98:c0f5 
+0

actualmente uso 'freegeoip.net'; también puedes probar: [geoplugin.net] (http://www.geoplugin.net/json.gp?ip=20.20.20.20), puede ayudar a alguien. – stom

+0

¿me puede confirmar si hay algún servicio de google que pueda proporcionar el código de país y país de una dirección Ip determinada. – Yusuf

Cuestiones relacionadas