2013-01-22 32 views
1

我正在嘗試從配置UI生成WinPcap過濾器。現在我有一個過濾器字符串,看起來像這樣ip && (((ip.src == 10.10.10.10 && (tcp.port == 10 || udp.port == 10)) && (ip.dst == 20.20.20.20 && (tcp.port == 20 || udp.port == 20))))。當我將它輸入到Wireshark中時,此過濾器是有效的,但是當我嘗試通過WinPcap編譯它時,我得到一個syntax error。我已經編譯了一個沒有問題的簡單過濾器(ip and tcp),所以我知道它與這個過濾器字符串有關。有任何想法嗎?WinPcap過濾器字符串語法錯誤

回答

5

您可能需要指定協議,而不是僅將 ip。 例如

(ip.proto == TCP) && ... 

所以,你正在使用的過濾器選項是符合Wireshark的語法。您需要使用BPF format來捕獲數據,以便能夠在wireshark和WinPcap之間來回切換。您可以使用您希望收集的特定界面上的「捕獲選項」來測試您的過濾器。

enter image description here

enter image description here

你Wireshark的過濾器將被轉換爲以下BPF代碼:

ip && (((ip src 10.10.10.10 && (port 10)) && (ip dst 20.20.20.20 && (port 20)))) 

見Wireshark的上WinPcaps頁FilterCaptures部分和Filter expression syntax更多的細節。