Wake-on-Lan

深度數據包檢測以檢測 WOL

  • May 9, 2017

我想收聽 WOL(Wake-On-LAN)數據包。

由於 WOL 數據包可以是 UDP/TCP/其他(是的,甚至是 TCP,但可能沒用),我必須檢查每個傳入數據包的 WOL 特定模式。

這不能直接用 netfilter 完成,因為模式是 6xFF + 16xtarget-MAC-address(所以我們有 96 個可變字節)。

我發現的工具可以檢測到很多協議,但沒有一個能夠檢測到 WOL。

您是否知道一種簡單的方法來檢查每個數據包並在檢測到特定模式時執行腳本?

使用ngrep,您可以這樣做:

ngrep '\xff{6}(.{6})\1{15}'

匹配 0xff 6 次,然後是任意 6 個字節,然後是相同的 6 個字節重複 15 次以上。我確認與 . 生成的數據包匹配wakeonlan

ngrep具有對腳本有用的選項(例如,-W single每個匹配的數據包有一行,-l取消緩衝,-t時間戳,-q靜音其他輸出)。

引用自:https://unix.stackexchange.com/questions/363945