gpt4 book ai didi

c - 如何在 pcap_loop 的回调函数中注入(inject)数据包?

转载 作者:行者123 更新时间:2023-11-30 16:08:49 25 4
gpt4 key购买 nike

我对套接字编程完全陌生。我正在尝试嗅探和欺骗数据包。我在 Linuxlibpcap 库中使用 pcap_loop 并使用以下签名:

int pcap_loop(pcap_t *p, int cnt, pcap_handler callback, u_char *user);

我想使用 pcap_injectpcap_sendpacketpcap_loop 内部的回调函数中注入(inject)数据包。

但是,pcap_injectpcap_sendpacket 需要 pcap_t * 句柄来发送原始数据包

回调函数似乎没有一种简单的方法来访问句柄。我想知道是否可以从回调中访问它,或者是否有更简单的方法来执行此操作。

最佳答案

这就是回调的 user 参数的用途。我不确定为什么它是 u_char * 而不是 void *,因为它是一个“通用指针”,并且 BPF 可以追溯到 1992 年,其中我认为大多数 C 编译器都支持 void * - 也许并非全部都支持。

在任何情况下,指向任意值的指针都可以通过将其作为参数传递给 pcap_loop()pcap_dispatch() 来传递给回调函数;它可能是一个指向结构的指针,其中包含您要捕获的 pcap_t * 等值。

这样,回调就可以使用 pcap_t * 调用 pcap_inject()

关于c - 如何在 pcap_loop 的回调函数中注入(inject)数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59252930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com