JNetPcap安装及使用
啥是JNetPcap?
JNetPcap是由Sly Technologies开发的开源DPI(Deep Packet Inspection)SDK。
Java平台底层不支持底层网络操作,需要通过JNI封装不同系统提供的C库提供Java访问方法。JnetPcap主要有下面四个特点:
- 提供几乎所有libpcap类的封装
- 实时解码抓取到的数据包
- 提供多种类的网络协议解析库
- 通过使用SDK用户可以轻松的扩展网络协议
- 通过native和Java实现,来优化解码过程
JnetPcap安装
JnetPcap的安装其实也比较简单,也就是3步走的政策。关键有时候会搞不清楚,容易拉掉某些步骤。因此,我将这些步骤整理如下:
- 安装依赖
在第一部分对JNetPcap的介绍中已经提过了,JNetPcap几乎提供libpcap的所有封装,所以他肯定要依赖于libpcap的啦,通过一下命令在你的机器上安装libpcap。
yum install -y libpcap libpcap-devel
- 引入jar包
引入jar包就是直接将jar包引入到你的项目中就可以了。
- 设定library
个人感觉这一步还是比较坑爹的,因为当你运行一个普通的java程序和运行一个hadoop MapReduce程序时,library的文件目录可能会有所不同。
你可以通过以下方法,查看当前java程序的library目录地址。
public class Main {
public static void main() {
// 输出当前程序的library目的地址
System.out.println(System.getProperty("java.library.path"));
}
}
然后将jnetpcap.so复制到上面输出的library目录中即可。
JNetPcap的相关demo
参见GitHub。
参考文档
JNetPcap安装及使用的更多相关文章
- Jnetpcap简述
Jnetpcap简述 最近需要做一个本地网络流量分析的项目,基于 Java 语言,上网查了很多资料,最后利用 Jnetpcap 实现了,这里做个记录. 这里先列一下我用到的工具以及版本: Eclips ...
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- gentoo 安装
加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- 【原】nodejs全局安装和本地安装的区别
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
随机推荐
- python-Web-django-商城-购物车商品加减
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- hive配置元数据库mysql文件配置
hive中conf/hive-site.xml文件配置(没有该文件则新建) <?xml version="1.0"?> <?xml-stylesheet type ...
- 【VS开发】组播(多播)的C程序实战
每个人都有不同的认知规律和习惯, 有的人喜欢搞一套严密的大理论, 论述起来滔滔不绝, 不管自己懂不懂, 反正读者/听者是没搞懂. 有的人喜欢从实践出发, 没看到代码, 不运行一下, 不看到结果, 就不 ...
- HTML5 a标签的down属性进行图片下载
a标签中的down属性时HTML5新增的属性,此属性指示浏览器下载URL而不是导航到URL,因此将提示用户将其保存为本地文件.目前该属性的兼容性如下: 具体代码实现: /* 主要原理:利用a标签的do ...
- 性能排查--CPU占用高
排查思路: 1.先找到占用CPU高的进程PID top命令 2.top -H -p <PID> 查看哪个占用CPU高的线程TID 3.jstack <PID> /ho ...
- matplotlib库绘制散点图
假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温随时间(天)变化的某种规律? a = [11,17,16,11,12,11,12,6,6 ...
- js排列组合
/* 全排列主要用到的是递归和数组的插入 arr: 需要排列的数组 第一步:从里面取一个,创建一个新的数组,形式为二维,例如arr = [1,2,3]; 取出3(没有特殊要求,随便取一个),放入 te ...
- nginx部署vue前端,刷新出现404或者500错误的解决方案
在nginx配置文件的server下加上 try_files $uri $uri/ /index.html; 不加的话是404,路径错误是500,这里的路径只要照着/index.html就行,不用加上 ...
- DVWA之SQL注入演练(low)
1.设置 把安全等级先调整为low,让自己获得点信心,免得一来就被打脸. 2.测试和分析页面的功能 这里有一个输入框 根据上面的提示,输入用户的id.然后我们输入之后,发现它返回了关于这个 ...
- 【已解决】Field injection is not recommended和Could not autowired. No beans of 'xxx' type found.
目录 问题 解决办法 备注 问题 在项目中,我们使用Spring的@Autowired注解去引入其他类时有时候阿里的编码规约插件就会提示:"Field injection is not re ...