2017-04-21 79 views
0

假設我是基於集線器的本地網絡10.0.0.0/24提供訪問互聯網的路由器。pcap過濾器選擇數據包嚴格傳入和傳出網絡

+------+ 
| pc A +-----+ 
+------+  | 
      +--+--+ +-------------+ 
      | hub +---+ router (me) +---- internet 
      +--+--+ +-------------+ 
+------+  | 
| pc B +-----+ 
+------+ 

我實現使用libpcap的瞭解用戶的PPS該網絡從/互聯網進去一小包計數器。例如,我想收集分組:

    從A
  • (或任何內部,如B)到stackoverflow.com(或任何外部)
  • 從stackoverflow.com到A(即答覆)

但我想濾波器分組:

    從A到B
  • (這是一個集線器基於網絡,所以我看到他們)
  • 從A(或內部)給我或我可以做其他的方式

最好的過濾器是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

也許更簡單的方式來標記你的標準將是「只捕獲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地址。

還有更多的可能性。

+0

對不起,例子不清楚。實際上,我想要將來自網絡中* any *主機的數據包捕獲到外部主機或其他方式。例如,在這裏我想捕獲A和B.我將編輯這個問題,目前尚不清楚。 – FunkySayu

+0

但是你的答案給了我一個主意。像'host \(ether $ ROUTER_MAC而不是ip $ ROUTER_IP \)'。我不確定這種語法是否允許,並且'ether host $ ROUTER_MAC而不是主機ip $ ROUTER_IP'不是同一個請求。 – FunkySayu