java使用pcap4j进行报文发送和接收

news/2025/2/5 13:35:34/

1、pcap4j框架使用的驱动Npcap需要进行安装

2、获取自己window电脑的mac地址设备

在cmd中使用的命令是getmac

使用程序获取服务器本身的mac地址

java">import org.pcap4j.core.PcapNativeException;
import org.pcap4j.core.PcapNetworkInterface;
import org.pcap4j.core.Pcaps;public class ListDevices {public static void main(String[] args) throws PcapNativeException {for (PcapNetworkInterface nif : Pcaps.findAllDevs()) {System.out.println(nif.getName() + " (" + nif.getDescription() + ")");}}}

获取的类似于这种,但是实际代码使用需要加双斜杠

\Device\NPF_{YOUR_INTERFACE_ID}

例如(\\Device\\NPF_{YOUR_INTERFACE_ID})

3、编写发送报文的程序

发送端

import org.pcap4j.core.*;
import org.pcap4j.packet.Packet;
import org.pcap4j.packet.UnknownPacket;public class Sender {private static final String INTERFACE_NAME = "\\Device\\NPF_{网卡地址}"; // 替换为实际的网卡名称private static final byte[] INSTRUCTION = "Hello from Sender".getBytes();public static void main(String[] args) throws PcapNativeException, NotOpenException, InterruptedException {PcapNetworkInterface nif = Pcaps.getDevByName(INTERFACE_NAME);if (nif == null) {System.err.println("No such device found: " + INTERFACE_NAME);return;}PcapHandle handle = nif.openLive(65536, PcapNetworkInterface.PromiscuousMode.PROMISCUOUS, 10);Packet packet = UnknownPacket.newPacket(INSTRUCTION, 0, INSTRUCTION.length);handle.sendPacket(packet);System.out.println("Instruction sent.");handle.loop(10, new PacketListener() {@Overridepublic void gotPacket(Packet packet) {System.out.println("Received response: " + new String(packet.getRawData()));}});handle.close();}}


http://www.ppmy.cn/news/1569517.html

相关文章

STM32单片机学习记录(2.2)

一、STM32 13.1 - PWR简介 1. PWR(Power Control)电源控制 (1)PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能; (2)可编程电压监测器(…

在排序数组中查找元素的第一个和最后一个位置(力扣)

一.题目介绍 二.题目解析 使用二分进行查找 2.1处理边界情况 如果数组为空,直接返回 [-1, -1],因为无法找到目标值。 int[] ret new int[2]; ret[0] ret[1] -1; if (nums.length 0) return ret; 2.2查找左端点(目标值开始位置&#…

240. 搜索二维矩阵||

参考题解:https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf 将矩阵旋转45度,可以看作一个二叉搜索树。 假设以左下角元素为根结点, 当target比root大的时候&#xff…

用BGP的路由聚合功能聚合大陆路由,效果显著不?

正文共:666 字 11 图,预估阅读时间:1 分钟 之前我们统计过中国境内的IP地址和路由信息(你知道中国大陆一共有多少IPv4地址吗?),不过数量比较多,有8000多条。截止到2021年底&#xff…

【Leetcode刷题记录】1456. 定长子串中元音的最大数目---定长滑动窗口即解题思路总结

1456. 定长子串中元音的最大数目 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 这道题的暴力求解的思路是通过遍历字符串 s 的每一个长度为 k 的子串&#xf…

生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (上)

今天小李哥将开启全新的技术分享系列,为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来,生成式 AI 安全市场正迅速发展。据 IDC 预测,到 2025 年全球 AI 安全解决方案市场规模将突破 200 亿美元,年复合增长率超过 30%…

什么叫DeepSeek-V3,以及与GPT-4o的区别

1. DeepSeek 的故事 1.1 DeepSeek 是什么? DeepSeek 是一家专注于人工智能技术研发的公司,致力于打造高性能、低成本的 AI 模型。它的目标是让 AI 技术更加普惠,让更多人能够用上强大的 AI 工具。 1.2 DeepSeek-V3 的问世 DeepSeek-V3 是…

PyQt4学习笔记2】Qt 的 Model/View 架构

目录 一、Model/View 架构 1. Model/View 架构的核心思想 2. Model/View 架构的优势 3. 常见的 Model 和 View 类 模型类 (Model) 视图类 (View) 4. 信号和槽机制 5. 示例代码 6. 数据操作 设置数据(将特定位置的数据替换掉) 插入和删除数据 7. 自定义模型 8. 总结 二、Model/V…