zoukankan      html  css  js  c++  java
  • IP地址库解析

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    感谢luma qq 关于地址库的格式描述:

    http://lumaqq.linuxsir.org/article/qqwry_format_detail.html

    因客户需求,需要分析用户数据,需要知道用户访问时的国家信息,目前仅仅知道ip地址,如何知道国家信息呢?第一反应就是找个ip地址库。对照查找下即可。

    想想国内的ip地址库,比较全面的算是显IP的QX版本了。中间用了ip地址库。可以分析这个库文件。OK,思路确定,Go

    1、  下载显IP版的地址库

    2、  分析库文件格式。 格式说明:http://lumaqq.linuxsir.org/article/qqwry_format_detail.html

    3、  根据格式说明,编写代码

    贴出设计

    关键类及说明:

    BaseDataReader

    基础的数据读取类

    DirectReader

    直接读取数据的模式实现

    Model1Reader

    模式1读取器

    Model2Reader

    模式2读取器

    IPRecordFactory

    读取器的创建工厂

    ISearch

    搜索的接口

    BinarySearch

    二分法搜索的实现

    FullSearch

    全文件搜素

    写个Demo测试下

    注意事项:

    1、  ip字符串转化为整形时,需要注意字节序。

    .net framework 默认为 litter-endian

    ip 字符串的现实方式是 big-endian

    2、  int 与 uint 是由区别的

    看到这个,可能你会笑,谁不知道呢?嘿嘿,以前我就不知道,或者说是知道他们的区别,但不知道各自应用场景。

    经常写应用的人是不会注意这些细节问题的,只要应用运行正常就可以了,不会关注底层的具体使用什么数据类型。

    这次写代码的过程中,一开始都都是使用 int,调试到最后才发现大数据转化为 int 时,居然变成了 –xxxxxxx (负数)了,与实际的有差别,才反应过来,原来如此。

    3、  算法的使用。

    因 .net framework 提供的大部分的内存数据结构(Hashtable,list,Dictionary等),经常使用他们构建数据,导致要写基本的算法时,头大了。最后才慢慢的想起来,磕磕碰碰写完了。此时深深的体会到,算法的威力(编程的内功)

    4、  坚持就是胜利。有想法就尽快付诸行动,存在脑子的东西,永远是不会被他人知晓的。

    贴上测试代码:

    ipqueryDemo 请在如下地址下载 qqwry.dat ,放置到 bin 目录下即可,切记切记!

    ip 库下载地址:   http://www.onlinedown.net/soft/19051.htm

     

    完整Demo:

    ipQuery-(完整版,包括qqwry.dat).7z

    ipQuery库使用说明:

    http://www.cnblogs.com/AloneSword/archive/2012/06/19/2555380.html

  • 相关阅读:
    前沿技术解密——VirtualDOM
    Ques核心思想——CSS Namespace
    Unix Pipes to Javascript Pipes
    Road to the future——伪MVVM库Q.js
    聊聊CSS postproccessors
    【译】十款性能最佳的压缩算法
    Kafka Streams开发入门(9)
    Kafka Streams开发入门(8)
    【译】Kafka Producer Sticky Partitioner
    【译】99th Percentile Latency at Scale with Apache Kafka
  • 原文地址:https://www.cnblogs.com/AloneSword/p/2554219.html
Copyright © 2011-2022 走看看