最近在搭建内部平台的时候,需设计一个脚本,将pcap/pcapng文件转化成xml文件,并且需要从xml提取有效数据,将其插入Mongo数据库,实现语言为java,具体实现时引入了一些第三方库,最后生成一个auto.jar文件,因为jar文件可以很方便的被其他脚本直接调用,方便做一些自动化管理。
整个auto.jar的实现分为以下三部分:
1、 通过Process调用tshark命令,将pcap/pcapng文件转化成xml文件
2、 根据提取数据内容的BSON格式设计文档,从xml文件提取有效信息,并调用阿里的fastjson库(Java语言编写的JSON处理器)生成BSON格式信息
3、 通过Mongo3.1.jar库,将BSON信息插入数据库
下面对上述三个部分做一个简单的说明。
一、xml文件生成
示例程序如Example.java文件所示,通过Runtime.getRuntime()执行命令即可。该过程相对较简单,需要注意的是,在Windows和linux平台下,具体命令的表现形式会有所不同,如Window需要加上”cmd.exe /C”,linux需要加上”/bin/sh -c”。
生成xml文件通过tshark命令实现,tshark命令需注意版本,不同版本生成xml标签字段会有一些差别,比如版本1.6.*中UDP包可能就没有Stream index字段,而2.2.6版本则有上述字段。
public class Example {
public static void main(String args[]) {
try {