Libpcap - 接收与发送数据包
Libpcap - Received vs. Sent packets
我正在使用 libpcap 捕获特定端口上的所有数据包。但是我需要分开并清楚地知道我的设备正在发送哪些数据包,以及它正在接收哪些数据包。
实际上我使用 pcap_close()
来抓包,而且效果很好;但是如果数据包被接收或发送,结构 pcap_pkthdr 不包含任何信息。
我有几个选择,但我觉得都不太好:
- 我可以尝试获取我自己的 IP 并将其与
IP Header
中的 IP 进行比较,但是总是检查我的 IP 并进行比较是一个很大的负担...
- 我可以用一个
src host
和另一个 dest host
做两个 pcap 过滤器。但是像这样有两个滤镜是没有意义的,我不知道如何用两个单独的滤镜进行捕捉。
那么,我错了吗?如果没有,是否有一种有效的方法将接收到的数据包与发送的数据包分开?
谢谢!
Source mac 可以判断它是入口还是出口。如果捕获的数据包具有主机的源 Mac,则它是出口,否则它是入口。
我正在使用 libpcap 捕获特定端口上的所有数据包。但是我需要分开并清楚地知道我的设备正在发送哪些数据包,以及它正在接收哪些数据包。
实际上我使用 pcap_close()
来抓包,而且效果很好;但是如果数据包被接收或发送,结构 pcap_pkthdr 不包含任何信息。
我有几个选择,但我觉得都不太好:
- 我可以尝试获取我自己的 IP 并将其与
IP Header
中的 IP 进行比较,但是总是检查我的 IP 并进行比较是一个很大的负担... - 我可以用一个
src host
和另一个dest host
做两个 pcap 过滤器。但是像这样有两个滤镜是没有意义的,我不知道如何用两个单独的滤镜进行捕捉。
那么,我错了吗?如果没有,是否有一种有效的方法将接收到的数据包与发送的数据包分开? 谢谢!
Source mac 可以判断它是入口还是出口。如果捕获的数据包具有主机的源 Mac,则它是出口,否则它是入口。