WOLを検出するための深層パケット検査

WOLを検出するための深層パケット検査

WOL(Wake on LAN)パケットを受信したいです。
WOLパケットはUDP / TCP /すべてのプロトコル(TCPでも可能ですが、おそらく役に立ちません)である可能性があるため、WOL固有のパターンに対して着信するすべてのパケットを確認する必要があります。

パターンは6xFF + 16xtarget-MACアドレス(したがって96個の可変バイトがある)なので、netfilterを使用して直接実行することはできません。

私が見つけたツールは多くのプロトコルを検出できますが、それらのどれもWOLを検出できません。

すべてのパケットを調べ、特定のパターンが検出されたらスクリプトを実行する簡単な方法を知っていますか?

答え1

を使用すると、ngrep次のことができます。

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

0xffを6回一致し、その後に6バイトが続き、同じ6バイトが15回繰り返されます。生成されたパケットと一致することを確認しましたwakeonlan

ngrepスクリプトに便利なオプションがあります(一致するパケットごとに1行、ビット-W singleバッファリング、タイムスタンプ、その他の出力をミュート)。-l-t-q

関連情報