それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

スプラトゥーン3の通信相手を見ながらプレイする

スプラトゥーン3の通信相手を見ながらプレイする

スプラトゥーンの対戦相手のIPアドレスを見ながらプレイする。

マッチングしたタイミングや、相手のISPをみる、地域を見るなどで、ラグが予想できたり、テザリング勢が混じってると、回線切断の危険性が高い・ラグが多い、スプラトゥーン3で不快なPlayerとマッチングしないように工夫する礎石になりそうなのでログを見ることにする。

#!/usr/bin/env bash
MAC_ADDR='18:c2:bf:xx:xx:XX'

if [[ $( ip neigh | grep $MAC_ADDR )  =~ 192.168.[0-9]+.[0-9]+ ]];  then
  addr=$BASH_REMATCH;
  echo $addr
  TCP_DUMP='tcpdump -i br-lan  -s 0  'dst $addr ' 2>/dev/null'
  cmd="timeout 2 $TCP_DUMP | cut -d ' ' -f 3 | sort | uniq  "
  echo $cmd
  watch -dc -n 3 "$cmd"
fi

利用した各種コマンドについて。

上記のスクリプトで利用したコマンドについて

動作の仕組みとしては、timeout で tcpdump を指定秒間取り出し、その結果をsort uniq で通信相手を絞る。このコマンドをwatch コマンドで定期実行する。って感じですね。

MACアドレスからIPを取り出す

ip neigh | grep $MAC_ADDR =~ 192.168.[0-9]+.[0-9]+ ; 
echo $BASH_REMATCH

IPアドレス宛のパケットを表示する

tcpdump -i br-lan  -s 0  'dst $addr ' 2>/dev/null

2秒経ったら終了させて、sort/uniq する

timeout 2 $TCP_DUMP | cut -d ' ' -f 3 | sort | uniq  

3秒に一回実行する

watch -dc -n 3 "$cmd"

指定時間をキャプチャする

tcpdump -i eth0 -s 0 -w /tmp/01.pcap -G 30 dst 192.168.2.109 and udp 

pcap は packet capture の略だ思う

スプラトゥーン3のパケットをキャプチャする。

UDPでゲームしているはずなのでUDPで絞ると少なくて良いかもしれない。

tcpdump -i eth0  dst 192.168.2.109 and udp

ただ、443でGCPAWSと通信しているのでtcpdumpの中身をフィルタリングしてもいいと思う。