WOLパケットをキャプチャする方法は?

WOLパケットをキャプチャする方法は?

使った

sudo tcpdump -v -i eth0 ether proto 0x0842 or udp port 9

WakeMeOnLanしかし、NirSoftコンピュータを目覚めさせると何も見えません。


そしてWireshark

ここに画像の説明を入力してください。

ベストアンサー1

このコマンドを使用すると、以下を減らすことができます。ただ目を覚ますしようとしています。

tcpdump -UlnXi eth0 ether proto 0x0842 or udp port 9 2>/dev/null |
sed -nE 's/^.*20:  (ffff|.... ....) (..)(..) (..)(..) (..)(..).*$/\2:\3:\4:\5:\6:\7/p'

これは目覚めることを捉えます。etherwakeエーテル型 0x0842(AMDマジックパケット形式)wakeonlanUDP:9)、しかし実行するにはインターフェイスが必要です。promiscuous mode

この例の出力は次のとおりです。

44:55:33:11:56:66
11:22:33:66:56:af
11:be:33:ef:56:af

たとえば、別のコンピューターでテストするには、次のようにします。

wakeonlan 12:de:ad:be:ef:56
etherwake -i wlp2s0 -b 31:32:33:34:35:36

UDPを介して送信されたデータ(wakeonlanコマンドなど)のみをキャプチャするには、無差別モードを必要としないスクリプトを使用できます。

nc -dknl -p 9 -u |
 stdbuf -o0 xxd -c 6 -p |
 stdbuf -o0 uniq |
 stdbuf -o0 grep -v 'ffffffffffff' |
 while read ; do
   echo ${REPLY:0:2}:${REPLY:2:2}:${REPLY:4:2}:${REPLY:6:2}:${REPLY:8:2}:${REPLY:10:2};
 done

代わりに別のタスクを開始できますwhile read ... echo blabla

おすすめ記事