הינה קוד להכנסת המידע למסד נתונים מסוג MYSQL.
רק שלוקח לסקריפט בערך דקה לרוץ.
מבנה הטבלה:
קוד:
CREATE TABLE `ip2country` (
`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 '',
UNIQUE KEY `IP_TO_2` (`IP_TO`),
UNIQUE KEY `IP_FROM_2` (`IP_FROM`),
KEY `IP_FROM` (`IP_FROM`),
KEY `IP_TO` (`IP_TO`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
הקוד שמכניס:
PHP קוד:
<?php
error_reporting(1);
$start = time();
$fp = fopen("./ip-to-country.csv" ,"r");
$c=0;
mysql_connect('localhost',"root");
mysql_select_db("ip2country");
while(!feof($fp))
{
$line = array();
//From //To
preg_match('/"([0-9]*)","([0-9]*)","([a-z]{2})","([a-z]{3})","([a-z ]*)"/i',fgets($fp),$line);
if($line[1]=='0'||$line[1]=='')
continue;
mysql_query("INSERT INTO `ip2country`
(`IP_FROM`, `IP_TO`, `COUNTRY_CODE2`, `COUNTRY_CODE3`, `COUNTRY_NAME`) VALUES
(".$line[1].", ".$line[2].", '".$line[3]."', '".$line[4]."', '".$line[5]."')") or die(mysql_error());
$c++;
}
mysql_close();
fclose($fp);
echo "lines: " . $c . ". time took: " . (time() - $start);
?>