zoukankan      html  css  js  c++  java
  • Java解析IP数据库,工程文档

    1.  工程介绍

    本工程doTestIP为eclipse(java EE)下创建的工程,JDK1.6实现的功能如下:

      1、解析二进制的IP数据库文件

      2、导出经过解析后的IP记录文档,只支持txt格式

      3、支持查询IP的归属地

      4、支持查询某地区的IP或者IP范围

      5、能将数据分解成如下格式:< IP,国家,省/市,城市,详细地址,单位地址,运营商>,并批量插入数据库。(44万条数据,优化后耗时约60s)

     

    2.  工程结构

     


     需要的jar包:junit-4.8.1.jar & log4j-1.2.15.jar & ojdbc14.jar 

    2.1   运行主类(入口)

    IP地址查询的运行类为Decorator.java

    插入数据库的运行类为Run.java

    package路径为doTestIP/src/com/showtime/main/

     

    2.2   包结构

    2.2.1 IPparse:这个包实现了解析IP数据库文件和查询IP地址的功能。

      IPSeeker.java 是主要类,其余是辅助类,public List<IPEntry> getAllData(){},该方法能获取所有解析后的数据;

        public IPLocation getIPLocation(String ip){},该方法能根据IP查询地址;

        public List<IPEntry> getIPEntriesDebug(String s) {},该方法根据地点查询IP;

        public List<IPEntry> getIPEntries(String s) {},该方法根据地点查询IP,用文件映射的方式,效率更高。

     

    2.2.2 Main:运行类 

      Decorator.javaIP为地址查询的运行类,

      Run.java为插入数据库的运行类。

     

    2.2.3 Module:这个包实现了向文件写数据和向数据库插入数据的功能。

       InputFileFirstExtends.java 实现导出文件的功能,文件内存放解析出类的数据;

      InputFileSecondExtends.java 实现导出文件的功能,文件内存放格式化后的数据,格式如下:< IP,国家,省/市,城市,详细地址,单位地址,运营商>;

      InsertIntoTablesExtends.java 实现向数据库中IP表和Area表中插入数据的功能。

          

    2.2.4 SplitString:该包实现将数据分解成固定格式,如:< IP,国家,省/市,城市,详细地址,单位地址,运营商>

      PropertyIspExtends.java 设置运营商分割的标准

      PropertyProvinceExtends.java  设置省份分割的标准

      TruncateStringImpl.java 实现数据格式转换

     

    2.2.5 功能包 

    该包提供辅助。

      ConnOracleJDBC.java 提供JDBC方式连接数据库;

      ConnOracelJNDI.java  提供JNDI方式连接数据库;

      LogFactory.java 日志工厂

    2.2.6 单元测试包 

     

     

    2.3   接口和抽象类

    2.3.1 AbsInputFile.java    

      导出文件的抽象类,继承它的子类为InputFileFirstExtends.java,InputFileSecondExtends.java

    2.3.2 AbsWriteIntoOracle.java

      向数据库插入数据的抽象类,子类为InsertIntoTableExtends.java

     

     

    2.3.3 AbsProperty.java      

      设置字段拆分标准的抽象类,子类为PropertyIspExtends.java,PropertyProvinceExtends.java

    2.3.4 ITrucateString.java  

      格式化单条记录的接口,实现类为TruncateStringImpl.java

     

  • 相关阅读:
    Installation request for topthink/think-captcha ^3.0 -> satisfiable by topthink/think-captcha[v3.0.0].
    /etc/sudoers配置错误导致的nova-api等异常
    修改ssh默认端口导致的虚拟机resize失败
    ansible自动化测试云平台多个网络角色间带宽(shell模块调用iperf)
    nova的服务心跳机制和服务状态监控机制的实现
    时间不同步导致的nova,cinder服务一会up一会down的来回跳跃
    利用ansible部署keeplived和haproxy集群
    利用ansible检测网络连通性(多个网段多IP)
    通过ansible安装etcd集群
    部署k8s statefulset
  • 原文地址:https://www.cnblogs.com/MyITHome/p/2624155.html
Copyright © 2011-2022 走看看