我是 WinPcap 的开发者,这是Windows下着名的数据包捕获和发送软件。我已将WinPcap移植到 NDIS 6轻量级过滤器技术,但它仍然不支持环回数据包(例如发送到127.0.0.1和从127.0.0.1接收的数据包)捕获由于Windows的性质:环回数据包直接在TCP / IP堆栈中处理,不会转到NDIS层。
有人告诉我 Windows过滤平台可以看到环回流量,所以我做了一些关于它的研究。我有几个问题。
1)什么是实际的环回数据包?我的意思是NDIS无法看到的数据包?就像我ping 127.0.0.1时一样,这些ICMP数据包肯定是环回的。当我ping一个本地网络适配器绑定的地址(如192.168.0.24)时,我认为它也是环回的。 这些都是这些条件吗?如果是,那么我可以根据本地IP是127.0.0.1还是本地适配器IP(如192.168.0.24)过滤掉哪些数据包是环回数据包。
2)我了解到WFP有很多层,我认为我的要求应该使用“ IP数据包(网络层)”,我想知道 WFP网络层可以捕获所有环回数据包入站和出站?
3)我不知道 WFP捕获的环回数据包是否具有以太网报头?如果没有,那么我认为我应该先将以太网报头添加到数据包前缀,然后再将它们发送到用户模式,因为WinPcap是一个以太网级数据包捕获软件,许多使用WinPcap的软件(如Wireshark)默认会解析来自以太网的数据包层。但是,我想我会让整个以太网报头全为0,因为事实上实际上没有以太网报头。
感谢并感谢您的帮助!