libpcap 在它们下面使用原始套接字吗?

2024-04-05

我对原始套接字和 libcap 的使用感到有点困惑。任何人都可以简单地指出使用两者的优点。我读了几个链接,但是,它让我感到困惑。


libpcap 在不同的操作系统上使用不同的机制。在 Linux 上,它使用 PF_PACKET 原始套接字或熟套接字,具体取决于它是否了解接口的 Linux 链路层类型(ARPHRD_ 值)and该链路层类型的接口是否产生有用的链路层标头(PPP 接口不会,因此您看不到网络层协议标识符)。在 Irix 上,它使用带有 RAWPROTO_SNOOP 协议的 PF_RAW 套接字。在其他系统上,它根本不使用原始套接字。

原始套接字可用于多种目的,例如发送和接收原始 IPv4 数据包,而不必担心链路层(即它们插入 IP 层而不是网络设备驱动程序)。如果您需要访问原始链路层,大多数操作系统上的原始套接字都不支持(Linux 和 Irix 是明显的例外,根据上一段),但 libpcap 支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

libpcap 在它们下面使用原始套接字吗? 的相关文章

  • Linux安装libpcap(pcap.h库)(以Ubuntu 18.04为例)

    做毕业设计需要用到libpcap来抓包 借此次机会完整记录下自己的安装过程 xff0c 前人种树后人乘凉 到libpcap官网去下载最新的源码包 下载完成后tar xzf 文件 tar gz 解压 xff0c 于是我们可以看到完整的源码目录
  • linux下c语言抓包库libpcap

    安装命令 xff1a sudo apt get install libpcap dev 由于自己还没仔细研究过 xff0c 暂时也只是想在这里留个记录 xff0c 方便以后需要时使用 下面是百度百科里的例子 include lt pcap
  • linux下安装libpcap

    1 安装GCC xff1a yum y install gcc c 43 43 2 安装flex xff1a yum y install flex 没有flex xff0c 直接安装libpcap会提示 34 Your operating
  • 混杂模式下的数据包套接字仅接收本地流量

    我有一个创建的套接字socket PF PACKET SOCK RAW htons ETH P ALL 我使用以下方法将其设置为混杂模式 struct ifreq ifr strncpy char ifr ifr name interfac
  • Mac OS X (Darwin) 下的 AF_PACKET 等效项

    我正在尝试在 Mac OS X 上编译一个使用 AF PACKET 套接字和 libpcap 的 C 程序 OS X 中的等效项是什么 Mac OS X 以及其他 BSD 风格的操作系统 例如 FreeBSD NetBSD OpenBSD
  • 发送 ICMP ping

    对于 ICMP ping 请求 回显请求 我是否需要获取目的地的 MAC 地址 我正在尝试学习如何使用原始套接字在 C 中实现此功能 但无法理解如何获取目标的 MAC 地址 任何帮助表示赞赏 谢谢 我需要获取目的地的MAC地址吗 不 在大多
  • 数据包数据拦截和修改

    我希望能够在 tcp 客户端一侧拦截 修改 tcp 流中的数据 pcap 的示例展示了如何解析 tcp 数据包标头 有效负载 但是假设 我想在 tcp 客户端读取数据包有效负载之前修改它 或者完全丢弃数据包 我该如何使用 pcap capu
  • 使用 TPACKET_V2 时,Vlan id 设置为 0

    我对这个 TPACKET V2 的使用有疑问 我的问题是 在套接字上设置这种类型的数据包后 当我尝试接收一些数据包时 我无法从数据包中读取 vlan id 当然是从数据包的标头 vlan tci 始终为 0 现在我正在使用 open sus
  • Android NDK:尝试移植 JnetPcap

    我发现了一个Android流量监控应用程序 Shark 它基于 JnetPcap 并且有一个包含所有源文件和相应的文件Android mk files 我将 jni 目录放在 Android NDK 的示例文件中 并尝试使用ndk buil
  • libpcap - 从所有接口捕获数据包

    我需要从 Linux 机器上的所有网络接口捕获数据包 为了做到这一点 我计划使用pcap open live API 并传递 any 作为设备参数 我有不同类型的端口 以太网端口 例如 eth0 和 GRE 隧道 例如 tun0 来自不同类
  • 转换 .wav 文件中的 RTP 序列有效负载

    我有一个文本文件 其中包含 VoIP 对话的 RTP 数据包的有效负载 十六进制 有谁知道如何将文本转换为文件 使用 c c 的 wav 音频 PS 我使用的是 GNU Linux Thanks 我用 Java 做了同样的事情 这是我用于测
  • 如何使用libpcap中的“pcap_lookupdev()”?

    代码找不到任何设备 我想知道 pcap lookupdev 是做什么的 谢谢 include
  • tcp 校验和和 tcp 卸载

    我正在使用原始套接字来创建我自己的套接字 我需要设置 tcp checksum 我尝试了很多参考资料 但都不起作用 我正在使用wireshark进行测试 请问你能帮帮我吗 顺便说一句 我在某处读到如果你设置 tcp checksum 0 然
  • 使用异步 Socket.BeginReceive 时如何检测超时?

    在 F 中使用原始套接字编写异步 Ping 以使用尽可能少的线程启用并行请求 不使用 System Net NetworkInformation Ping 因为它似乎为每个请求分配一个线程 我也对使用 F 异步工作流程感兴趣 当目标主机不存
  • 在 Linux 上嗅探数据包时过滤网络堆栈中的数据包?

    我有一个问题要问底层网络 Linux 专家 我必须为我大学的安全项目构建两个工具 第一个工具是 ARP 中毒攻击者 它会毒害远程主机的 ARP 缓存 以便检索他发送到另一台主机的数据 我使用原始套接字用 C 语言编写了这个工具 它工作得很好
  • pcap_loop 和 pcap_dispatch 区别

    pcap loop 和 pcap dispatch 到底有什么区别 该手册对这一点的描述非常好 我是板着脸说的 保证 从man pcap loop pcap loop processes packets from a live captur
  • Linux 上使用 C/C++ 编写的简单原始套接字服务器

    我正在尝试使用原始套接字构建以太网 我无法使用 TCP IP UDP 或任何其他协议 这是因为它将与非常简单的硬件进行通信 这些硬件没有资源来处理所有不同的协议层 我的网络将由一台主机组成 通过以太网交换机与多个硬件进行通信 此时 我基本上
  • libpcap 在它们下面使用原始套接字吗?

    我对原始套接字和 libcap 的使用感到有点困惑 任何人都可以简单地指出使用两者的优点 我读了几个链接 但是 它让我感到困惑 libpcap 在不同的操作系统上使用不同的机制 在 Linux 上 它使用 PF PACKET 原始套接字或熟
  • 如何刷新原始 AF_PACKET 套接字以获得正确的过滤数据包

    sock socket AF PACKET SOCK RAW htons ETH P ALL setsockopt sock SOL SOCKET SO ATTACH FILTER f sizeof f 使用这个简单的 BPF LPF 附加
  • 如何通过RAW套接字发送修改后的IPv6数据包?

    我正在尝试通过 C Linux 中的 RAW 套接字发送自定义 IPv6 标头 我已经使用 IP HDRINCL 套接字选项在 IPv4 中取得了成功 但是 IPv6 没有等效的选项 我找到了解决方法here http lists open

随机推荐

  • 当文本字段开始编辑 iPhone 时表视图滚动

    我在 iPhone 应用程序中有表视图控制器 表视图有两个部分 第一部分有两行 第二部分有一行 第二部分有一个自定义表格视图单元格 第二部分有一个文本字段 当文本字段开始编辑并且键盘弹出时 该文本字段会隐藏 我希望这个表格视图在键盘弹出时滚
  • Redis 写入 .ssh/authorized_keys

    当前设置 2 个主服务器 12 个工作服务器 工作人员通过 ssh copy id 连接到主设备 主设备和工作人员正在主设备上的 redis 队列中写入数据 过去一周我遇到的问题是 Redis 正在将数据写入authorized keys
  • 将坐标(地理位置)存储在数组中以计算距离

    我和我的搭档正在为我们的学校论文开发一个练习网络应用程序 我们正在尝试使用地理定位 API 的 watchposition 函数获取跑步者的位置并在锻炼期间跟踪他 跑步者可以在屏幕上查看他当前的距离 这是我们被卡住的点 我们只能计算起点和终
  • 在 Kafka 生产者上启用幂等性是否会降低吞吐量

    我有卡夫卡制作人启用幂等性 没有启用一次语义或事务 在休息端点调用中 我启用它的原因是因为我不希望卡夫卡重试导致任何重复 我担心以下几点 幂等性会减慢我的端点速度吗 这个端点需要非常快 我读了 kafka api 文档 启用幂等性将使重试无
  • 屏幕顶部的自定义 Toast

    请先阅读问题 然后再使用打印 Toast 的标准例程进行回答 我想在屏幕的左上角显示一个自定义 Toast 我使用以下代码来创建 Toast Toast mFixedToast new Toast getApplicationContext
  • PHP 脚本版本检查/通知

    如何根据在线文件检查脚本的版本以查看它是否是最新版本 为了澄清起见 我说的是我编写的脚本 而不是 PHP 的版本 我想采用一种方式让最终用户知道我何时更新了脚本 指定第二个 更简单 解决方案phjr https stackoverflow
  • Java动态澄清

    我在术语下看到了这段摘录Java 流行语在读一本关于Java的书时我不明白 Dynamic Java 程序带有大量的运行时类型信息 用于在运行时验证和解析对对象的访问 这使得以安全且方便的方式动态链接代码成为可能 这对于 Java 环境的稳
  • 每个页面有一个 CSS 文件还是单独的 CSS 文件?

    当我构建页面时 我想要为每个页面使用单独的样式表还是为整个网站使用一个大型样式表 出于加载目的 单个文件不是更好的做法吗 因为加载时的总 CSS 会更少 使用单个文件 CSS 文件会被缓存 因此减少了为每个访问的新页面下载新文件的需要 为了
  • CIDetector跟踪ID从不存在

    我正在 OSX Mavericks 上编写一些人脸检测代码 并尝试利用 CIDetector 提供的跨多个静止图像功能的新 截至 10 8 人脸跟踪 我的基本面部检测工作正常 如下所示 void captureOutput AVCaptur
  • 如何在面板数据中为不同年份创建单独的直方图?

    我有一个数据框报纸 年 其中包含每年一组报纸的发行量 CIRC 我想看看这些数字的分布如何随时间变化 所以我想为这些不同的年份创建多个单独的直方图 我已经尝试过以下方法 ggplot newspaper yearly aes x CIRC
  • YouTube URL 方案 tvOS

    我正在尝试使用 URL 方案或 YouTube com 域从我的应用程序打开 YouTube 的应用程序 从而直接在 iOS 设备上打开 YouTube 的应用程序 这是我尝试过的代码 UIApplication sharedApplica
  • 如何访问shinyapps.io上应用程序的R+Shiny代码?

    我发现了一个设计非常好的闪亮应用程序闪亮应用程序io https wuli shinyapps io QuoiR 网站 但我不知道如何访问它R代码或说出github其代码目录 我发现如果我们能够访问它的代码 这非常有启发性 无论如何 在最坏
  • SQLAlchemy 布尔值与 BOOLEAN 的比较

    我理解了BOOLEAN覆盖 visit name class BOOLEAN Boolean visit name BOOLEAN 控制调度程序选择的访问者方法 def compiler dispatch self visitor kw v
  • Java 编写单元测试,用于当用户在控制台中键入 quit 时退出程序

    我发现很难为这种方法编写单元测试 当用户键入退出命令时 它基本上会退出程序 系统退出类 public class SystemExit public void exit int status System exit status 我的静态方
  • 如何制作圆形按钮?

    我想制作一个圆形按钮 但我不知道该怎么做 我可以制作带有圆角的按钮 但是我怎样才能制作圆形 这是不一样的 请问一下 安卓上可以吗 谢谢 创建一个名为的 xml 文件roundedbutton xml在可绘制文件夹中
  • 为什么 cv2.rectangle 有时返回 np.ndarray,而有时返回 cv2.UMat

    我目前正在研究一些图像的可视化 并发现 opencv 的 cv2 rectangle 的奇怪行为 当输入图像是 np ndarray 时 例如 arr cv2 rectangle 返回一个 np ndarray 并且 arr 是用矩形绘制的
  • 如何禁用默认消息:“您的请求已成功处理”?

    当在我的 portlet 中执行添加 更新操作时 如何为我的插件 portlet 禁用此默认消息 您的请求已成功处理 另外我想为我的自定义配置页面禁用此功能 configuration jsp 这是当我们单击每个 Portlet 右上角出现
  • 这个“你好世界!”是怎么做到的?程序工作?

    int main void return yes no main printf hello world n 0 outputs hello world 但它实际上是如何工作的呢 确实有两件事 函数指针不像其他指针那样取消引用 main ma
  • Powershell - 排除 Get-ChildItem 中的文件夹

    如何排除文件夹 现在我对文件夹名称进行硬编码 但我希望它更加灵活 foreach file in Get ChildItem fileDirectory Exclude folderA folderb 如何排除文件夹 如果您指的是所有文件夹
  • libpcap 在它们下面使用原始套接字吗?

    我对原始套接字和 libcap 的使用感到有点困惑 任何人都可以简单地指出使用两者的优点 我读了几个链接 但是 它让我感到困惑 libpcap 在不同的操作系统上使用不同的机制 在 Linux 上 它使用 PF PACKET 原始套接字或熟