Pcap4J抓包

简介: 学习使用pacp4j

前言

java中使用Pcap4J抓包


学习使用pacp4j 必须要先安装环境依赖WinPcap 或者 libPcap 根据你的使用环境选择

一、Pcap4J是什么?

为实现java抓包而封装的工具包

二、使用步骤

1.安装依赖库

Ubuntu

apt-get install libpcap-dev

CentOs

yum install libpcap-devel

Mac

brew install libpcap

Windows

choco install winpcap

2.引入项目中

Gradle

compile 'org.pcap4j:pcap4j-core:1.+'
compile 'org.pcap4j:pcap4j-packetfactory-static:1.+'

Maven

<dependency>
  <groupId>org.pcap4j</groupId>
  <artifactId>pcap4j-core</artifactId>
  <version>[1.0, 2.0)</version>
</dependency>
<dependency>
  <groupId>org.pcap4j</groupId>
  <artifactId>pcap4j-packetfactory-static</artifactId>
  <version>[1.0, 2.0)</version>
</dependency>

发现网络接口

InetAddress addr = InetAddress.getByName("192.168.10.100");
PcapNetworkInterface nif = Pcaps.getDevByAddress(addr);

打开Pcap处理

int snapLen = 65536;
PromiscuousMode mode = PromiscuousMode.PROMISCUOUS;
int timeout = 10;
PcapHandle handle = nif.openLive(snapLen, mode, timeout);

捕获数据包

Packet packet = handle.getNextPacketEx();
handle.close();

得到包信息

IpV4Packet ipV4Packet = packet.get(IpV4Packet.class);
Inet4Address srcAddr = ipV4Packet.getHeader().getSrcAddr();
System.out.println(srcAddr);
目录
相关文章
|
域名解析 网络协议
【计算机网络】DNS 分别在什么情况下使用 UDP 和 TCP?
【1月更文挑战第10天】【计算机网络】DNS 分别在什么情况下使用 UDP 和 TCP?
|
JSON Java 数据格式
|
缓存 监控 NoSQL
Redis--缓存击穿、缓存穿透、缓存雪崩
缓存击穿、缓存穿透和缓存雪崩是Redis使用过程中可能遇到的常见问题。理解这些问题的成因并采取相应的解决措施,可以有效提升系统的稳定性和性能。在实际应用中,应根据具体场景,选择合适的解决方案,并持续监控和优化缓存策略,以应对不断变化的业务需求。
2212 29
|
人工智能 自然语言处理 JavaScript
需要的效果它都有,让AI对话开发效率翻倍!这款Ant Design扩展组件库绝了
ant-design-x-vue 是基于 Ant Design Vue 的扩展组件库,专注于增强聊天和AI交互场景的体验。项目提供开箱即用的对话式UI组件,支持消息气泡、智能建议、思维链展示等特色功能,特别适合快速搭建智能客服、AI助手类应用。
1757 5
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
12087 1
|
前端开发 Java
后端BUG系列之:SpringBoot上传文件太大 报错 Maximum upload size exceeded
这篇文章讨论了SpringBoot应用中上传文件过大导致的错误"Maximum upload size exceeded",并提供了通过修改`application.properties`文件中的上传限制配置来解决这个问题的方法。
|
XML Java Maven
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息
这篇文章详细介绍了如何在Spring Boot项目中使用logback进行日志记录,包括Maven依赖配置、logback配置文件的编写,以及实现的日志持久化和控制台输出效果。
logback在springBoot项目中的使用 springboot中使用日志进行持久化保存日志信息