前提: 你會用vi。 很明顯,本文是在Linux下測試通過的。本文用的是MySQL命令行工具,如果你不會,用phpMyAdmin應該也可以。
第1步: 下載純真IP數據,解壓存成ip.txt。
詳解:這一步不用詳解了吧。如果你這一步都不會,下面就不用看了。
第2步: 用vi 編輯 ip.txt。
# vi ip.txt
在vi界面下輸入如下命令:
:%s/\s\+/;/
一共重復輸入3次。
存盤退出:
:wq
詳解:ip.txt有4列。分別是起始ip,結束ip,地區,說明。列之間用不等數量的空格間隔。為了將此文本文件到入到mysql,需要處理掉這些空格。但是只能處理掉前3列的空格,最後一列中的空格要保留。vi中輸入的命令意思是,把每一行第一個和其連續的空格替換成字符';'。
%s代表全局搜索替換。\s代表空格。\+代表盡可能多地匹配前面的字符。;代表替換成';'
第3步: 導入MySQL
創建MySQL表
復制代碼 代碼如下:
CREATE TABLE `ips` . `ip` (
`ip_start` VARCHAR ( 16 ) NOT NULL ,
`ip_end` VARCHAR ( 16 ) NULL ,
`region` VARCHAR ( 128 ) NULL ,
`comments` VARCHAR ( 512 ) NULL
) ENGINE = MYISAM
為避免出現亂碼, region和comments字段的Collation設為gbk_chinese_ci
導入ip.txt到ips數據庫的ip表
# mysqlimport -p你的密碼 --local --delete --fields-terminated-by=';' ips ip.txt
完成!
詳解:mysqlimport可以導入一個文本文件到數據庫的表中。前提是表的名字與文本文件名相同,並且表的字段與文本文件也對應起來。
--fields-terminated-by=';' 意思是字段用';'間隔開來。
--delete意思是,如果表已存在,導入前清空表中數據。