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

最佳答案

“libpcap”和“原始套接字”是不同的主题。

Libpcap 是一个用于 linux 的数据包捕获库,用于捕获通过网络接口(interface)(如 eth0)的流量/数据包。

在 Windows 上,Winpcap 库做同样的事情。

原始套接字是操作系统提供的套接字 API 的一项功能,可用于发送带有由应用程序而不是操作系统定义的 header 的数据包。因此,使用原始套接字我们可以指定 IP、TCP header 并发送数据包。

原始套接字一直在 Linux 上可用。在 Windows 上,原始套接字仅在 Windows XP 和 Windows XP(SP1) 中可用。

在 Windows 上,winpcap 库具有发送包含任意内容的数据包的功能,这意味着可以在 Windows 上使用 winpcap 实现原始套接字功能。

关于libpcap - libpcap 是否在它们下面使用原始套接字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7856509/

10-16 13:06