Autor
|
Tema: Obtener Lista de CIUDADES usando GeoIP ? (Leído 10,089 veces)
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
Buenas... Tengo un sistema donde necesito crearme una base de datos de los paises, estados y ciudades, utilizando GeoIP es facil determinar pais, estado y ciudad basandome en la IP de una persona, el problema es que, como les mencione ya, necesito una base de datos ya armada, asi que me hice a la tarea de investigar un poco como lo logra GeoIP. En realidad fue bastante sencillo saber como logra GeoIP obtener los nombres de estados y paises, vaya, no me refiero usar la IP como medio de rastreo, sino que GeoIP incorpora unas variables definidas en sus archivos PHP donde esta TOOOODA la lista de paises (con codigo de pais) y estados, asi que, solamente copie estas variables, y arme un script en PHP que me genera la sintaxis MySQL. Aqui el codigo: http://pastebin.com/KQCa2HB7. Basicamente con ese script podran obtener los paises, codigo pais y estados en forma de Lista o bien con sintaxis MySQL preparado para solo: copiar y pegar, e inmediatamente crean su Tabla personal. MI PROBLEMAEs que, no encuentro la manera de como obtener la lista de Todas las Ciudades de cada Pais, no puedo encontrar como las obtiene o como acceder a esa informacion, ya que al parecer (segun a como he leido el codigo), las ciudades se encuentran en el archivo: GeoIPLiteCity.dat. En donde el archivo GeoIPLiteCity.dat esta en binario, de modo que lo abri en modo binario usando PHP, pero no logro dar con la informacion de las ciudades, ya que pues esta pesadito (26.5 MB) y no entiendo la forma de irlo recorriendo. Ya ando un poco estresado de todo el dia y se me ha secado el cerebro jjejjejeej, alguna ayuda ? Saludos !
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
Lo que sucede es que esas funciones solo son para cuando consultas datos apartir de una IP existente o que esta en el sistema (en la web), lo que yo quiero hacer es formar mi propia base de datos de todas las ciudades de cada pais, pero extrayendolo del GeoIP. En el primer post les deje mi codigo de como obtener todos los Nombre y Codigos_de_Nombre, de los Paises y Estados (todos) que estan en la base de datos de GeoIP, de esta forma pueden armar su propia base de datos (para su sitio web) y que esta tenga una relacion 100% igual a la de GeoIP, de esta forma por ejemplo podremos crear una relacion entre los usuarios que nos visitan y los spots/anuncios que se le mostraran a dicho usuario, ya que tanto en nuestra base de datos con en la de GeoIP, esta el mismo nombre de ciudad, estado y pais. La funcion que me mencionas (el conjunto) solo sirven para consultar datos (pais, ciudad o estado) apartir de una IP. En mi primer post mencione que intente cargar el archivo GeoIPLiteCity.dat pero al ser demasiado grande resulta dificil leer linea por linea, vaya menciono linea por line porque no tengo idea de como esta constituido, si tiene funciones o si tiene texto acomodado en forma especial. Posteriormente leyendo el codigo de las funciones de geoip_xx_(); veo que estas hacen apertura del archivo pero en forma compartida (MEMORY_SHARED), pero en este caso leen ciertas partes del archivo (asumiendo que parte leer ya), pero no me queda del todo claro Alguien sabe como obtener los nombre de las ciudades/regiones que estan en GeoIP ?
|
|
« Última modificación: 21 Diciembre 2010, 22:42 pm por Diabliyo »
|
En línea
|
|
|
|
engel lex
|
tienes la opción de lanzarte algo tipo scan for($i=0;$i<256;i++){ for($i=0;$i<256;i++){ $ip="$i.$j.0.0"; . . . } }
creo el sistema de ip está contruido como casi todo en base a que los 2 primeros son el identificador... y ese codigo no es tan largo solo son 65535 ciclos... por pesado que sea el proceso (si es en una pc local) dudo que pase de los 10min
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
El script es bueno, pero tardaria un buen :S... De todos modos graciasm, pero encontre una solucion mas rapida y simple... Leyendo por el sitio de GeoIP, encontre que GeoIP para los que deseen saber la BAse de datos de Ciudades de GeoIP, existe un archivo grande CVS donde esta la lista, la pueden bajar de aqui: http://www.maxmind.com/app/faq#what_citiesEl archivo lo leen, arman un array con explode() y listo, ya podemos armar nuestra base de datos. Saludos !
|
|
« Última modificación: 28 Diciembre 2010, 20:13 pm por Diabliyo »
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Si lo que necesitas es crearte una lista por País/Ciudad nada más, no hay problema porque son unos 250.000 registros, pero si por el contrario quieres relacionar IP/Ciudad, la cosa ya es un poco "peor", son unos 2.5 millones Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
Si lo que necesitas es crearte una lista por País/Ciudad nada más, no hay problema porque son unos 250.000 registros, pero si por el contrario quieres relacionar IP/Ciudad, la cosa ya es un poco "peor", son unos 2.5 millones Saludos No, las IPs no me importan, lo que buscaba eran los nombres de las ciudades de cada estado/pais !... Pero ya quedo solucionado, publique arriba como.
|
|
|
En línea
|
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
la verdad son alrededor de 4 millones aqui la BD completa, pesa 300mb y es SQL. "Super contador de Visitas en PHP"=300MB SQL+4 millones de registros+ScriptsPD: Oye compa Diabliyo , no te importaria compartir esa bd con nosotros, supongo que la organizaste para hacer 3 select dependientes, donde el usuario escoje un PAIS, de ese Pais le salen los departamentos, y de ese departamento, sus ciudades, verdad ?
|
|
« Última modificación: 1 Enero 2011, 03:52 am por Graphixx »
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
la verdad son alrededor de 4 millones aqui la BD completa, pesa 300mb y es SQL. "Super contador de Visitas en PHP"=300MB SQL+4 millones de registros+ScriptsPD: Oye compa Diabliyo , no te importaria compartir esa bd con nosotros, supongo que la organizaste para hacer 3 select dependientes, donde el usuario escoje un PAIS, de ese Pais le salen los departamentos, y de ese departamento, sus ciudades, verdad ? Que tal, mejor en vez de compartirte la BDD, te paso el code en PHP, total la BDD MySQL la armara la fuente PHP apartir de los archivos que tengas de GeoIP y tardara unos cuantos minutos en generarte todo el show. Respecto a como los utilizo, pues le atinaste , utilizo SELECTs, dependiendo el pais que elija, usando AJAX consulto los estados, e igual, dependiendo el estado, con AJAX pongo otro select con las ciudades.
Codigo: mundo.php [ Fuente Pastebin] [ Megaupload] Los pasos son los siguientes: Para obtener Paises y Estados1- Bajas el software GeoIP para PHP (archivos *.inc y *.php). 2- Los colocas en un directorio, mi source los toma de: admin/geoip/. 3- Verifica la funcion que se llama todo() y veras que descomentando partes del codigo puedes ir haciendo todo, asi no alentas PHP y evitas que el hosting frene el script (por si tarda la ejecucion). Para las Ciudades1- Descragas e CVS este. 2- Lo renombras como ciudades.cvs. 3- Corres el script mio en PHP, pero descomentas la parte de todo() correspondiente a ciudades. 4- Tardara cuando mucho unos 5 minutos. Listo, tienes Paises, Estados y Ciudades relacionados en la BDD. Para los campos que utilizo, simple... lee el code, al fin ya te hice la gran parte !... Saludos !
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Obtener Lista de Caracteres ISO-8859-1
Programación Visual Basic
|
Freeze.
|
0
|
1,405
|
1 Agosto 2007, 22:15 pm
por Freeze.
|
|
|
Es posible obtener cokies y contraseñas remotamente usando dsniff y ngrep
Hacking
|
Mister12
|
1
|
3,367
|
26 Octubre 2013, 04:20 am
por Mister12
|
|
|
Se puede obtener el PIN de un móvil usando la cámara y el micrófono
Noticias
|
wolfbcn
|
0
|
1,483
|
11 Noviembre 2013, 21:39 pm
por wolfbcn
|
|
|
obtener datos de una lista?
Java
|
owen
|
2
|
2,210
|
8 Agosto 2016, 18:09 pm
por DIANA KARINA HM
|
|
|
Obtener la iat usando lordpe, olly y el location calculator duda
Ingeniería Inversa
|
Borito30
|
1
|
2,555
|
11 Marzo 2017, 16:10 pm
por apuromafo CLS
|
|