java pcap4j http_使用Pcap4j实现一个抓包工具

Troubleshooting是我平时工作中的重要内容,我几乎每天都会花一些时间在定位客户环境的问题上,有很多的问题都需要通过抓包来协助分析,比如定位SSL handshake失败,SNMP请求没响应的问题等。Linux平台一般使用tcpdump抓包,由于我们只能通过远程脚本调用的方式执行,所以对windows我没法使用wireshark之类的GUI工具,所以一般用netsh( 参考资料3)进行抓包。但是,linux上有时候并没有安装tcpdump或者登录的用户没有权限执行tcpdump,而且windows上使用netsh抓包很麻烦,而且过滤方式很弱,所以,我们就想着能不能有其他的抓包方式。

Pcap4j刚好满足我们的要求,下面接单介绍下使用pcap4j如何实现抓包。

创建项目

创建一个maven项目,设置完项目后,将pcap4j的依赖加到pom.xml中:

org.pcap4j

pcap4j-core

1.7.3

org.pcap4j

pcap4j-packetfactory-static

1.7.3

打开网卡抓第一个包

Pcap4j提供了一个很好的工具类org.pcap4j.core.Pcaps,可以方便的根据名字获得一个网卡。拿到网卡后,打开一个PcapHandle,并获取第一个包并打印包信息。

// 根据网卡名获取网卡

PcapNetworkInterface nif = Pcaps.getDevByName(name);

int snapLen = 65536;

PromiscuousMode mode = PromiscuousMode.PROMIS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值