首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pcap函数: pcap_open()问题

pcap函数: pcap_open()问题
EN

Stack Overflow用户
提问于 2010-12-31 06:49:17
回答 1查看 1.9K关注 0票数 1

当我成功地在我的计算机上找到设备并调用pcap_open(...)这是否只给我发往和来自我的计算机的数据包?网络上的其他计算呢?是否显示尚未发送的数据包?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-31 08:05:53

简短的回答:

取决于,取决于,不是。

更长的答案:

在回答这些问题之前,您需要了解一些事情。首先,您需要知道在以太网上发送的每个数据包都将包含一个指定源地址和目的地址的以太网头。这些地址属于以太网上发送方和目标接收方的以太网卡。请注意,这些地址与IP地址不同。(有关如何查找以太网地址,请参阅地址解析协议(ARP) )。

当计算机接收到其以太网头的目的地址与其自身以太网卡的地址相匹配的数据包时,它会对其进行处理。否则,它会丢弃它。

例如,如果您将一组计算机连接到集线器,则当一台计算机向另一台计算机发送数据包时,所有计算机都会看到它,因为集线器只是广播它们在所有连接的链路上收到的每个数据包。但实际上只有一台计算机会处理数据包,那就是以太网报头中指定的计算机。

现在,转到pcap。您可以在混杂模式或非混杂模式(不确定是否有更好的术语来表示)中捕获数据包。如果您的接口处于混杂模式,则即使数据包的目的地与该接口的目的地不匹配,.If pcap也会显示在您的接口上收到的所有数据包。在非混杂模式下,它将只显示其目的地字段与您的接口地址匹配的数据包。

现在来回答大家的问题。

您将始终看到从您的计算机发送的数据包,并且始终看到专门发往您的计算机的数据包。您可能会看到从其他计算机发送的数据包,具体取决于您的网络。您可能会看到数据包发送到网络上的其他计算机,具体取决于您的网络。例如,如果您在WiFi接口上捕获数据包,则可以看到来自其他计算机的目的地和发送的数据包(因为它们是通过空中广播的,范围内的任何人都可以看到它们)。集线器也是如此,它广播它接收到的所有数据包。如果您的适配器处于混杂模式,pcap将显示它们,因此您可以看到发送到/来自其他计算机的流量。另一方面,如果您的计算机连接到交换机或路由器,您将只能看到自己的通信,因为交换机/路由器不会向您发送其他计算机的通信(请阅读集线器/交换机/路由器了解原因)。最后,它不会显示尚未发送的数据包,因为它们必须先从接口发送出去,然后pcap才能看到它们。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4566879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档