c - 如何在 C 语言中更改来自 NIC 的传入数据包?

标签 c network-programming

libpcap只能读取数据包,我该如何更改它?

基本上我想注册一个对所有传入数据包进行操作的回调函数,

如何做到这一点?

最佳答案

这是什么样的流量?你想如何修改它?什么操作系统?

在 Linux 上,您可以使用 iptables 让内核为您修改数据包。

如果这不能满足您的要求(即您需要将数据包放入用户空间),您可以查看 netfilter_queue 。或者作为更简单的替代方案,使用 iptables REDIRECT 规则将所有数据包发送到单个端口,并编写一个应用程序来监听该端口。

关于c - 如何在 C 语言中更改来自 NIC 的传入数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5732482/

相关文章:

java - 无法使用网络发送发送消息

qt - 如何通过 QT 中的特定网络接口(interface)写入数据报?

在组合声明/赋值之前可以存在局部变量吗?

c - 由信号 SIGSEGV(地址边界错误)终止

c - 当我添加代码来设置路径并想要检索文件(在我的程序中选择2)时,它将显示段错误(核心转储)

C shell,父进程捕获的信号仍然转到子进程。

c - 如何在 C 中通过 HTTP 写入图像?

c - 一直调用 malloc() 和 free() 有多糟糕?

c++ - 一种保护通过网络发送的数据的方法?

c++ - 否定 size_t (即 `-sizeof(struct foo)` ))会发生什么?