注意: このページは最後に更新されてから 2044 日が経過している記事です。 文章が腐敗している可能性があります。その点を考慮した上で確認ください。

サーバーブラウザの作り方

提供: kimoto's wiki

概要

qstatという便利プログラムを使えばサーバーブラウザが簡単につくれます。qstat.orgというところで配布していたのですがすでに潰れている、いつのまにかsourceforgeに移行してたのでそちらを見るとよいです。http://sourceforge.net/projects/qstat/develop

win32向けバイナリ http://sourceforge.net/projects/qstat/files/qstat/qstat-2.11/

qstatの使い方

qstat -nh -stm,game=left4dead2 hl2master.steampowered.com:27011

これでleft4dead2に関係するサーバー一覧が出力される。hl2master.steampowered.com:27011のところは、Program Files/Steam/config/masterservers.vdf の中にこんな感じでSteamのマスターサーバーのIPアドレスとポート番号が記載されているのでどれかを使うと良いです

	"hl2"
	{
		"0"
		{
			"addr"		"216.207.205.99:27011"
		}
		"1"
		{
			"addr"		"72.165.61.153:27015"
		}
		"2"
		{
			"addr"		"216.207.205.98:27011"
		}
		"3"
		{
			"addr"		"63.234.149.90:27011"
		}
		"4"
		{
			"addr"		"63.234.149.83:27011"
		}
	}

実行すると現在稼働中のデディケテッドサーバーに関する情報が、基本的にIP近いサーバーから表示されるっぽいので、明らかに日本っぽくないサーバーまで表示してきた後は、適当に中止したほうがよいっぽい。

個別のサーバーの情報取得方法

qstat -nh -utf8 -P -a2s 219.75.247.133:27030 

IPとポートは調べたいサーバーのIPとポート。どうも-xmlつけると-utf8つけてるのにうまく処理できないバグがあるっぽいので-xmlは使えない(maji fuck)

qstatのオプション

-R  サーバーのルール情報を取得する
-P  サーバー内のプレイヤー名も表示する
-sort  サーバーあるいはプレイヤーでソートする
-u  起動中のサーバーのみ表示

-nf  満員のサーバーを表示しない
-ne  空のサーバーを表示しない
-nh  ヘッダー行を表示しない
-cn  色の名前を表示する
-ncn  色の数字を表示する
-hc 色を#rrggbbのフォーマットで表示する
-tc  時間を時計書式で表示する (DhDDmDDs)
-tsw  時間をストップウォッチの書式で表示する DD:DD:DD
-ts  時間を秒数で表示する
-pa  プレイヤーのアドレスを表示する
-pa プレイヤーのアドレスを表示
-hpn プレイヤーの名前を16進数で
-hsn  サーバーの名前の16進数で
-old  古いスタイルで表示
-progress 進捗情報を表示
-retry リトライ回数(default 3)
-interval リトライにおけるインターバル (defalt 0.50)
-mi マスターサーバーへのインターバル (default 2.00)
-timeout タイムアウト時間
-maxsim 
-sendinterval  送信パケット間のインターバル (default 5)
-errors  エラーを表示する
-allowserverdups
-of  ファイル出力する
-af  ファイルに追記する
-raw <delim>
-mdelim <delim>
-xml  xmlで出力
-srcport
-srcip
-H  ホスト名を解決
-Hcache  ホスト名解決にキャッシュ使う
-utf8  XML出力時にUTF8を使う
-bom  XML出力にBOMつける

Sort keys:
  servers: p=by-ping, g=by-game, i=by-IP-address, h=by-hostname, n=by-#-players, l=by-list-order
  players: P=by-ping, F=by-frags, T=by-team, N=by-name

一部重要そうじゃないオプションは割愛した、もっと知りたければqstat --helpでもしてください。