利用纯真ip地址库 查询 ip所属地
1. 首先下周數據源,選擇是純真數據庫:http://www.cz88.net/
2. 安裝后,打開軟件,將數據導出為txt格式。
3. 處理數據,參照網上的文章(http://www.jb51.net/article/20511.htm),用vi打開,執行如下命令::%s/\s\+/;/
執行3次。
%s代表全局搜索替換,\s 代表空格 , \+ 代表盡可能多的匹配前面的字符,;代表替換成';'(我再實際操作的時候將;替換為tab了)
4. 創建表ip2
startip varchar 255 0 -1 0 0 0 0 0 gbk gbk_chinese_ci 0 0 endip varchar 255 0 -1 0 0 0 0 0 gbk gbk_chinese_ci 0 0 location varchar 255 0 -1 0 0 0 0 0 gbk gbk_chinese_ci 0 0 detail varchar 255 0 -1 0 0 0 0 0 gbk gbk_chinese_ci 0 0
最后是數據庫的編碼格式就選擇為 gbk_chinese_ci
創建表ip
id int 10 0 0 -1 -1 0 0 0 -1 0 startip int 10 0 -1 0 0 0 0 0 0 0 endip int 10 0 -1 0 0 0 0 0 0 0 location varchar 255 0 -1 0 0 0 0 0 gbk gbk_chinese_ci 0 0 detail varchar 255 0 -1 0 0 0 0 0 gbk gbk_chinese_ci 0 0
5. 將文本中的數據導入到數據庫中來。
d:\mysql>mysqlimport -h127.0.0.1 -uroot -p --local --delete ips ip2.txt (因為我的文本中的分隔符是tab,所以這里不用指定分隔符)
注意文本的文件名必須和表的名字相同
6. 為了以后查詢方便,將ip用int存儲,將ip2的數據的ip轉換為數字后插入ip表中
INSERT into ips.ip(startip,endip,location,detail) (select Inet_ATON(startip),inet_ATON(endip),location,detail FROM ips.ip2)
7. 這樣當你需要查詢某個ip的地址時,可以如下這樣:
SELECT * from ips.ip where startip < INET_ATON('1.2.5.333') and INET_ATON('1.2.5.33')< endip
總結
以上是生活随笔為你收集整理的利用纯真ip地址库 查询 ip所属地的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为手表2和3的区别(华为技术有限公司)
- 下一篇: 苹果公司推出Lisa-全球第一台采用图形