2012-10-26 40 views
16

我正在DD-WRT路由器上運行tcpdump以捕獲手機上行數據。我只想聽一些mac地址。要做到這一點,我試圖運行命令使用類似於Wireshark的語法:如何使用tcpdump過濾MAC地址?

tcpdump -i prism0 ether src[0:3] 5c:95:ae -s0 -w | nc 192.168.1.147 31337

,這樣我可以聽所有已作爲初始MAC地址5c:95:ae設備。

問題是,語法是錯誤的,我想知道如果你們中的任何人都知道正確的語法來得到我想要的。

回答

10

隨着man pcap-filter我發現這個解決方案:

tcpdump "ether[6:2] == 0x5c95 and ether[8:1] == 0xae" 
+0

嗨!非常感謝答案。我也是這樣找到的。問題是我需要在ether之後指定標誌src,但是如果我添加它,那麼我仍然會出現語法錯誤。 –

+0

爲什麼你需要這個標誌這麼多? – graphite

+2

爲什麼你需要在'ether'之後指定'src'? 'ether src XX:XX:XX:XX:XX:XX'中的'ether'表示「這是一個以太網地址」,所以只需要查看源地址,你需要指定「src」,但是「ether」在'ether [6:2]'中表示「這是以太網報頭的一部分」,以太網報頭的字節6和7是源地址的前兩個字節,而字節8是源地址的第三個字節,所以'6:2'和'8:1'指定你正在測試源地址。石墨的過濾器正是你需要和想要的。 – 2012-10-26 19:33:30