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