前提: 你會用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意思是,如果表已存在,匯入前清空表中資料。