FoxPress – Septiembre 2006

 

IP’s mundiales

http://www.fpress.com/

 

Por la Redacción de FoxPress                     
 

Para poder personalizar la información recabada de la web o la que se le da al usuario que accede es necesario personalizarla a su idioma, pais, edad, etc...

Este artículo usa la base de datos de IP’s del mundo para saber de donde viene un usuario.

Esa base de datos en formato csv la puedes conseguir de  http://ip-to-country.webhosting.info/ después de registrarte te dará http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip

Los procesos a realizar serían:

1.- Descomprime ese fichero ZIP en el CSV que tiene desntro.

2.- Create la siguiente tabla en MySQL

CREATE TABLE iptocountry (IP_FROM double NOT NULL default '0',

  IP_TO double NOT NULL default '0',

  COUNTRY_CODE2 char(2) NOT NULL default '',

  COUNTRY_CODE3 char(3) NOT NULL default '',

  COUNTRY_NAME varchar(50) NOT NULL default '',

  KEY CODE (IP_FROM,IP_TO,COUNTRY_CODE2)

) ENGINE=MyISAM

 

            3.- Inserta los registros del CSV en tu MySQL con:

 

LOAD DATA LOCAL INFILE 'C:/ip-to-country.csv' INTO TABLE iptocountry FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' 

 

4.- A continuación para saber el Pais al que se corresponde una IP puedes escribir en PHP:

 

$ip = $_SERVER["REMOTE_ADDR"];

 

/* transformacion de la IP */

$dotted = preg_split( "/[.]+/", $ip);

$ip2 = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);

 

$lcCAdena= "SELECT COUNTRY_NAME FROM IPTOCOUNTRY WHERE $ip2 BETWEEN IP_FROM AND IP_TO" ;

 

$resultado=mysql_query($lcCAdena,$link) ;

$row = mysql_fetch_array($resultado);

 

echo  $row['COUNTRY_NAME'];

 

De esta forma ya sabes de qué pais viene un usuario.

 

Este código te da el pais, pero puede ser que te interese saber la ciudad y su geo-localización.

 

Para eso puedes acudir a http://www.hostip.info. Ahí poniendo la IP te dice el pais, la ciudad y sus coordenadas siempre que tenga una IP fija.

 

Por ejemplo, si pongo:

 

http://api.hostip.info/get_html.php?ip=80.24.123.135&position=true

 

me dice:

 

   Country: SPAIN (ES)
   City: Zaragoza
   Latitude: 41.6333
   Longitude: -0.883333

 

Lo que viene a decir que la sede de FoxPress está en SPAIN (Zaragoza) y su latitud y longitud. Si a continuación vas al Google Maps y pones esas coordenadas. Verás que el sistema se equivoca en 1 kilometro más o menos:

 

 

Si por el contrario la instrucción fuera:

 

http://api.hostip.info/?ip=80.24.123.135

 

Me daría la respuesta en XML:

 

 

 

FoxPress – Septiembre de 2006