GeoIPCountry.csv'); shell_exec('cut -d , -f 3-5 GeoIPv6.csv | tr -d " " >> GeoIPCountry.csv'); shell_exec('rm GeoIPCountryCSV.zip GeoIPv6.csv.gz GeoIPCountryWhois.csv GeoIPv6.csv'); if (($Blocks = file("GeoIPCountry.csv", FILE_IGNORE_NEW_LINES)) === false) { echo 'Error'; } echo 'There are '.count($Blocks).' blocks'; echo '
'; //Because the old code reading a 2mil line database had splitting, we're just gonna keep using it with this much more reasonable 140k line db $SplitOn = 1000; $DB->query("TRUNCATE TABLE geoip_country"); $Values = array(); foreach ($Blocks as $Index => $Block) { list($StartIP, $EndIP, $CountryID) = explode(",", $Block); $StartIP = trim($StartIP, '"'); $EndIP = trim($EndIP, '"'); $CountryID = trim($CountryID, '"'); $Values[] = "('$StartIP', '$EndIP', '".$CountryID."')"; if ($Index % $SplitOn == 0) { $DB->query(' INSERT INTO geoip_country (StartIP, EndIP, Code) VALUES '.implode(', ', $Values)); $Values = array(); } } if (count($Values) > 0) { $DB->query(" INSERT INTO geoip_country (StartIP, EndIP, Code) VALUES ".implode(', ', $Values)); } View::show_footer();