纯真IP数据库导入mysql

下载纯真IP数据库

安装后解压到本地为ip.txt

格式为:

1.1.145.0       1.1.147.255     泰国 沙功那空

1.1.148.0       1.1.149.255     泰国  CZ88.NET

1.1.150.0       1.1.150.128     泰国 沙功那空

ip.txt上传到linux,用vim打开ip.txt

vim ip.txt

正则表达式替换

输入:%s/s+/;/ 

重复3次即可完成替换

正则表达式说明(如果你会用sed做替换,那么应该很简单):

%s全局替换

s空格,作为被替换

+1个或多个,+是转义

;用于替换空格

查看文件可以看到被处理后的文件格式如下:

1.29.25.0;1.29.27.255;内蒙古赤峰市;联通

1.29.28.0;1.29.28.255;内蒙古赤峰市巴林左旗;联通林东镇新城区BRAS数据机房

1.29.29.0;1.29.33.255;内蒙古赤峰市;联通

创建mysql表,由于我不需要最后一列的数据,所以建表只有3列

1
2
3
4
5
CREATE TABLE `ips` . `ip` (
`ip_start` VARCHAR ( 16 ) NOT NULL ,
`ip_end` VARCHAR ( 16 ) NULL ,
`contray` VARCHAR ( 128 ) NULL
) ENGINE = MYISAM

可以使用Navicat for Mysql打开“设计表”,调整字符集为gb2312,排序规则为gb2312_chinese_ci

最后,是导入数据到Mysql:

可以使用mysqlimport,也可以使用Navicat for Mysql的“导入向导”功能。

使用导入向导需要注意的是:编码选择bg2312,分隔符选择 “;”

使用数据库查找指定ip来源:

1
select * from ip where INET_ATON('60.23.23.23') between INET_ATON(ip_start) and INET_ATON(ip_end);
原文地址:https://www.cnblogs.com/solohac/p/4154149.html