假设我是基于中心的本地网络10.0.0.0/24
的路由器,可以访问互联网。
+------+
| pc A +-----+
+------+ |
+--+--+ +-------------+
| hub +---+ router (me) +---- internet
+--+--+ +-------------+
+------+ |
| pc B +-----+
+------+
我正在使用libpcap实现一个小数据包计数器,以了解该网络中来自/到达互联网的用户的PPS。例如,我想收集数据包:
但我想过滤数据包:
我能做的最好的过滤器是net 10.0.0.0/24 and \( not src net 10.0.0.0/24 or not dst net 10.0.0.0/24 \)
但是没有更好的语法?
答案 0 :(得分:0)
标记您的标准的简单方法可能是“仅捕获A和路由器之间的IP数据包”。
这可以这样表达:
ip and ether host AA:AA:AA:AA:AA:AA and ether host BB:BB:BB:BB:BB:BB
其中AA:AA:AA:AA:AA:AA
是A的MAC地址,BB:BB:BB:BB:BB:BB
是路由器的MAC地址。
或ip and not ether host CC:CC:CC:CC:CC:CC and ether host BB:BB:BB:BB:BB:BB
其中CC:CC:CC:CC:CC:CC
是您的MAC。这将捕获路由器与网络上任何人之间的IP数据包,除了你自己。
另一个选项是ip and host 1.2.3.4 and ether host BB:BB:BB:BB:BB:BB
,其中1.2.3.4
是A的IP地址。
还有更多的可能性。