首先到http://www.cz88.net/ 下载一个最新的ip库,安装ip库后会生成一个快捷方式,如下图所示:


点击打开后,出现下图界面:


点击解压,会生成一个20多兆的文本文件,打开或者下载一个UltraEdit打开,另存为utf-8的文本文档,这样可以防止出现乱码。在此之前我们要修改一下php.ini的配置,不然中途可能会出现一些错误

默认情况下:MySQL导入文件大小有限制的,最大为2M,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下:

在php.ini中修改相关参数:

影响MySQL导入文件大小的参数有三个:

memory_limit=128M,upload_max_filesize=2M,post_max_size=8M

我比较懒,直接将这三个都改成了128。

首先创建数据库

CREATE TABLE ip_data (
ipstart INT UNSIGNED NOT NULL,
ipend INT UNSIGNED NOT NULL,
region VARCHAR(50) NOT NULL,
address VARCHAR(100) NOT NULL,
PRIMARY KEY (ipstart, ipend)
) TYPE = MyISAM;
首先在PhpMyAdmin里手动建一个名称为ip_data的数据库,然后插入上面的sql语句,一个名称为ip_data的表单就可以建好了

接着将下面的代码

<?php
function EncodeIp($strDotquadIp) { // 把点格式的ip地址转换成整数表示的ip地址
$arrIpSep = explode('.', $strDotquadIp);
if (count($arrIpSep) != 4) return 0;
$intIp = 0;
foreach ($arrIpSep as $k => $v) $intIp += (int)$v * pow(256, 3 - $k);
return $intIp;
}
$arrLines = file("ip".".txt");
$intLen = 0;
$i = 1;

$resFile = fopen("ip".$i.".sql", "w");
foreach ($arrLines as $k => $strLine) {
$arrElements = explode("||", addslashes($strLine));
$intIpStart = EncodeIp($arrElements[0]);
$intIpEnd = EncodeIp($arrElements[1]);
$j = 3;
$strAddress = "";
while ($arrElements[$j]) {
$strAddress .= " ".$arrElements[$j];
$j++;
}
$strSql = "INSERT INTO ip_data (ipstart, ipend, region, address) VALUES (".$intIpStart.", ".$intIpEnd.", '".trim($arrElements[2])."', '".trim($strAddress)."');\r\n";
fwrite($resFile, $strSql);
$intLen += strlen($strSql);
if ($intLen > 2097152) { // 当正在写入的sql文件超过2M时结束当前文件而开始写入新的sql文件
fclose($resFile);
$resFile = fopen("ip".(++$i).".sql", "w");
$intLen = 0;
}
}
?>
(以上参考文章 打造MySQL版的最新IP数据库)

将代码另存为php格式文件,然后放在www文件中,运行,就可以得到27个sql文件了,然后在phpmyadmin中一个一个导入。

开始时,也准备只生成一个sql文件,奈何有50多兆,试了几次,导入时总是超时,还有一次死机了,最后只好老老实实分割成2M的文件一个一个导入,大家也可以写代码自动导入。


也可以到mysql命令行里用命令导入将50多兆的sql文件一次性导入:

首先输入密码进入数据库,然后use ip_data选择ip_data数据库问当前数据库,再输入source c:\ip_data.sql,导入开始,要持续一段时间,耐心等待


整个导入过称持续四十多分钟,导入数据436315条。


把上面要用到的软件和文件的下载地址贴出来,至于appsev套件我就不上传了:

http://115.com/file/be8d8dz7#ip_setup.exe //纯真ip软件下载
http://115.com/file/e7zkhlfm#ipsql(1).zip //sql文件下载,每个文件2M
http://115.com/file/be8d8abp#iptxt.zip //TXT文件下载

http://115.com/file/anh74m0s#down.zip //UltraEdit下载

更多相关文章

  1. NoSQL_Cassandra_导出数据库结构/数据库结构还原
  2. 约束数据库表,以便只有一行可以在列中具有特定值
  3. 数据库截取字符串SUBSTR函数的使用
  4. 如何在不改SQL的情况下优化数据库
  5. 如何在SQL Server数据库模式中找到所有填充了100%空值的列?
  6. Oracle SQL Developer是一个与c#一起使用的好数据库吗
  7. sql 语句 更改默认的sql server 数据库
  8. VFP+SQL Server 2000怎样进行数据库备份和恢复?
  9. 自己写了一个简单的mysql数据库连接类

随机推荐

  1. Android 实现图片轮播的三种方法
  2. android休眠运行
  3. Intent Server Environment
  4. android中获取SHA1的代码
  5. android 网络
  6. Android中声音处理流程
  7. android中重写onTouchEvent分别实现点击
  8. android渲染网页时onPageFinished不触发
  9. Android 自定义View 横向翻页
  10. Android圆环形自定义进度条控件的绘制