zoukankan      html  css  js  c++  java
  • 利用纯真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



  • 相关阅读:
    通知协议KVO的用法
    UIImageView用法
    默默的学习!
    多输入参数的方法
    一本书的摘录
    实例、局部、静态变量(java)
    分数相加的例题
    类的继承
    多线程
    单例
  • 原文地址:https://www.cnblogs.com/maseng/p/3520931.html
Copyright © 2011-2022 走看看