バイナリエディターでgamespy.com->openspy.net
前記事
で紹介したLuigi Auriemma氏のgslistですが、バイナリパッチを当てることで、Openspy.netで動くでしょうか?早速トライしましょうか。luigi氏のサイト(https://www.aluigi.altervista.org/)からgslist.zipをダウンロードして、展開します。今回は、作成済みの実行ファイルgslise.exe等にパッチを当てます。

ここからgslise.exeを選択し、デスクトップ等に置いたStirling.exeのショートカットへドラグアンドドロップします。

Stirling.exeは定番のバイナリエディタですが、例えばVectorから落とせます。
さてドラグアンドドロップすると、

このような画面になりますので、メニューの”検索・移動”の”置換”を選択します。

ここで上図のように設定して、”一括置換”します。で、ファイル->上書き保存を選択します。

改変前のバイナリは、gslist.exe.bakとして保存されています。ここで、gslist.exeを起動してみましょう。いつものOpen Git bash hereは使えません。gslist.exeを起動しようとすると、

となります。ので、”普通”のコマンドプロンプトから起動しましょう。

たとえば、上図の検索windowで出てくる“コマンドプロンプト”を選べばおけです。

となるので、gslist.exeが在るフォルダーまで移動します。(筆者はこの手間を惜しんで、Bashを起動したがるわけです。)Change Directoryつまりcdコマンドで、

ここで、gslistと入力して起動します。最初は、パラメーター無しでおけです。

使えるコマンドラインオプションのリストが得られました。例えば、目的のBattleField2142のサーバをlistしたければ、“gslist -n stella”として起動すれば、

という結果が得られます。なぜstellaなのかは謎です。(笑)個々のサーバにQueryしたければ、例えば上から2番目のサーバーの情報を得るのであれば、
“gslist -I 54.36.176.221:2990”等と入れればおけです。やってみましょうかね。

このサーバーの設定が少しわかります。
フィルターの適用例を示しましょうかね。バイナリパッチ版なのでGeoIPも含めてフルに動作するはずです。上記サーバーで場所がUnited States(US)なサーバを表示するのだと。
gslist -n stella -f “(country=’US’)” として起動すればいいです。結果は、

で意外にも一個でした。他のサーバたちの所在地をまとめて知りたければ、Openspyのサイトで確認するのが吉です。Openspy.netで”Server List”を選択して、対象のゲームを選ぶと、

のようにOpenSpyにheart beatを送っているサーバの名前とそこにいるPlayerの数等々がわかります。残念ながらこの時点では日本のサーバはないようですね。
コメント