java 解析ip数据包_Java解析IP数据库,工程文档

该工程使用Java解析二进制IP数据库文件,提供查询IP归属地、地区IP及范围查询功能。支持导出解析结果到txt文件,并能将数据批量高效插入数据库,包括IP、国家、省/市、城市等信息。
摘要由CSDN通过智能技术生成

1.  工程介绍

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

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

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

3、支持查询IP的归属地

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

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

2.  工程结构

3026dc1fb4e80be3f9aab5ab841a65b3.png

需要的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 getAllData(){},该方法能获取所有解析后的数据;

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

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

public List 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值