c - 原始套接字 : filter only packets coming from a certain IP address? (Linux C)

标签 c linux sockets ip-address

我有一个 C Linux 程序,它使用原始套接字来读取传入的 tcp/udp 数据包。

我想应用一个过滤器,以便只有从特定 IP 地址发送的数据包才能到达我的套接字。

是否可能或者我是否应该接收每个数据包然后检查源地址字段?我有点担心后一种情况下的 cpu 使用情况。

谢谢。

最佳答案

这还取决于您使用的处理器。一些处理器具有内置硬件等功能,可以根据涉及输入端口、源 IP 地址和协议(protocol)类型(TCP/UDP 等)的规则过滤数据包。这反过来又可以减少负载,因为硬件过滤比软件过滤具有更好的性能。

关于c - 原始套接字 : filter only packets coming from a certain IP address? (Linux C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043108/

相关文章:

python - 如何在 ubuntu 20.04 中安装 caffe

java - 我正在尝试创建具有不同 URL 的套接字。我如何处理失败的连接?

c - 取消引用指向 const 数据类型的指针

c - 输入文件中数组字符串的动态内存分配

c - 将应用程序预处理器信息转发到静态库

c - 让: ** NO targets specififed and no makefile found.停止

linux - 在不挂载的情况下读取 cgroups 数据

python - Minecraft 服务器执行脚本

java - 服务器套接字未监听正确的 IP 地址

c - C 中的 TCP/IP 简单文件服务器在 C 中读取服务器上的问题