obtener - geoip php
Nivel de ciudad confiable Geo-IP, base de datos local gratuita (3)
Si una solución basada en navegador funciona para su caso de uso, es posible que desee consultar la API de GeoIP2 JavaScript de MaxMind . Primero intenta ubicar al usuario utilizando la geolocalización HTML5 y, si eso falla o es inexacto, revierte a los datos de Ciudad GeoIP2 de MaxMind (no a GeoLite). MaxMind proporciona una versión de atribución gratuita.
Quiero armar un script PHP para resolver el nombre de la ciudad (no se necesita nada más) con una buena resolución solo para un país (IRAN). Como tengo que consultar el DB varias veces, es mejor ir a través de una versión local descargable. He leído la mayoría de las publicaciones en stackoverflow y desde ahora las he probado:
- GeoIP City de maxmind suena bien, pero no es gratis.
- GeoIP de maxmind, tiene un bajo nivel de precisión (aproximadamente 50-60%)
- ip2country.net tiene una base de datos IP-2-City pero no es gratuita y no resuelve los nombres de las ciudades de Irán.
- También probé el DB # .Lite de ipinfodb.com que tiene una API aquí sin ningún éxito. El problema es que no detecta muchos nombres de ciudades.
- También probé la API hostip.info , pero parece ser demasiado lenta.
- Hay una clase php gratuita con DB local que resuelve solo el nombre del país.
- No sé si hay alguna posibilidad, usando Piwik con este plugin GeoIP . Se agradecería tener ideas si alguien sabe sobre eso.
- ipinfo.io es otro servicio que no resuelve los nombres de las ciudades con precisión.
- No sé si hay una forma de usar Google Analytics para resolver los nombres de las ciudades, ya que creo que Google sería mejor que cualquier otro servicio en relación con países como Irán.
Cualquier buena idea sería realmente apreciada.
Esto es difícil y difícil de hacer de manera confiable. Lo he probado en el pasado y fue algo como esto
- Obtenga una base de datos de direcciones IP, más ciudades y países ( http://lite.ip2location.com/database-ip-country-regioncity O http://ipinfodb.com/ip_database.php )
- Obtenga la dirección IP y busque las tablas para encontrar la ciudad y el país.
- Por último, compruebe si está en Irán utilizando la columna del país
Hay servicios pagados que pueden hacer esto muy rápido para usted. Puede llevarte años para que funcione algo que aún no es confiable porque simplemente no tienes los datos. Consideraría seriamente http://www.maxmind.com/en/city_per , a menos que, por supuesto, este sea un proyecto completamente comercial y $ sea un no no.
Si puede obtener el latitud y longitud de una tabla de IP, incluso sin los datos de la ciudad, entonces puede utilizar algo como esto para comprobar si la ciudad más cercana de Javascript es una opción - Encontrar la ciudad más cercana (¿matriz?) De ubicación conocida .
¿Qué pasa con la función Compartir ubicación de navegadores?
Algunas veces necesitamos usar una base de datos Geo-IP local en lugar de servicios web para propósitos particulares. Esta es mi experiencia: descargué el formulario de la base de datos https://db-ip.com . Estaba buscando mucho y finalmente encontré este más confiable. pero aún hay dos problemas más:
- 1-La base de datos de "dirección IP a la ciudad" es demasiado grande para cargarla en la base de datos MYSQL en el alojamiento a medida que pasa el límite de tiempo de espera.
- 2-La base de datos se basa en la comparación de direcciones IP de http://lite.ip2location.com. La base de datos es la base de los números de IP.
Así que desarrollé una aplicación .NET simple para resolver esos problemas. La solución se puede descargar desde aquí: https://github.com/atoosi/IP2Location-Database-Luncher