下载纯真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); |