XOPS Server List API

Powered by XOPS OFFICE

XOPS のサーバリストを取得する無許可・非公式 API です。

概要

XOPS のロビーサーバから現在のサーバの情報を取得し、 解析を行った上で UTF-8 エンコーディングの JSON 形式または JSONP 形式で返します。

取得結果はキャッシュされ、その有効時間は 5 分間 (300 秒間) です。 API にアクセスがあったタイミングでキャッシュ有効期限のチェックが行われ、 ロビーサーバからデータを取得してから 5 分以上経っている場合には取得しなおすという形式なので、 5 分以上全く API にアクセスがない場合は更新間隔は 5 分以上になります。

また、キャッシュ更新時は解析処理が行われるため、レスポンスを返すまで若干時間がかかります。

注意事項

リクエスト形式

JSON (application/json)
http://d.xops.biz/serverlist/get.php?type=json
JSONP (text/javascript; charset=utf-8)
http://d.xops.biz/serverlist/get.php?type=jsonp&callback=callbackfunc
callbackfunc: コールバック関数を指定します

レスポンス形式

成功すると、200 OK レスポンスラインとともに、下記のオブジェクトが返されます。 JSONP 形式での出力の場合は下記のオブジェクトを第一引数とした関数呼び出しの形になります (例: callback({〜下記のオブジェクト〜});)。

なお、リクエストが正しくない場合は 400 Bad Request が、 処理中に API 側で何らかの問題が起こった場合は 500 Internal Server Error が返されます。

{
	"version": 1,
	"poweredBy": "Powered by XOPS Server List API ( http://d.xops.biz )",
	"lastUpdated": "2011-01-01T00:00:00+09:00",
	"lastUpdatedUnix": 1234567890,
	"expires": "2011-01-01T00:00:00+09:00",
	"expiresUnix": 1234567890,
	"maxPlayers": 14,
	"playersMax": 14,
	"playersMin": 9,

	"message": "lobbyServerMessage",
	"messageQuoted": "quotedLobbyServerMessage",
	"interval": 30,
	"servers": [
		{
		"ipAddress": "127.0.0.1",
		"port": 1092,
		"nameRaw": "server name <test> http://www.google.com/ (F/14)",
		"nameQuoted": "server name &lt;test&gt; http://www.google.com/",
		"nameHTML": "server name &lt;test&gt; <a href=\"http://ux.nu/Google\" rel=\"external\">http://www.google.com/</a>",
		"maxPlayers": 14,
		"playersMax": 14,
		"playersMin": 9,
		"playersStr": "F",
		"countryName": "Japan",
		"countryCode": "jp",
		"language": "ja",
		"charset": "SJIS-win",
		"isInvalid": false,
		"isBlacklisted": false
		}
	]
}
名前形式概要説明
version Number バージョン API によって返されるオブジェクトのバージョンです。現在のバージョンは 1 (1.0) です。
poweredBy String 提供 飾りです。API を利用したからといって別に使う必要はありません。
lastUpdated String 最終取得日時 (W3C-DTF) 最後にロビーサーバからサーバリストを取得した日時が W3C-DTFで格納されています。
lastUpdatedUnix Number 最終取得日時 (Unix 時間) 最後にロビーサーバからサーバリストを取得した日時が Unix 時間形式で格納されています。
expires String キャッシュ有効期限 (W3C-DTF) キャッシュの有効期限が切れる日時が W3C-DTFで格納されています。 この日時以降に API にアクセスするとロビーサーバから最新のサーバリストを取得します。
expiresUnix Number キャッシュ有効期限 (Unix 時間) キャッシュの有効期限が切れる日時が Unix 時間形式で格納されています。
maxPlayers Number プレイヤー枠総合計 各サーバの最大プレイヤー数の合計です。
playersMax Number 推定全プレイヤー最大 各サーバの現在のプレイヤー数目安を基に推定した全プレイヤー数の最大数です。
playersMin Number 推定全プレイヤー最小 playersMax の反対で、最小数です。
message String ロビーサーバメッセージ (生) ロビーサーバからのメッセージに、文字コード変換を行っただけのものです。
messageQuoted String ロビーサーバメッセージ (HTML エスケープ済み) message に HTML エスケープ処理を行ったものです。
interval Number インターバル (推定) おそらく XOPS のクライアントにサーバリストの取得間隔を指示するためのものだと思われますが、 この API では特に利用していません。とりあえずデータとして保持・提供のみ行っています。
servers Array サーバリスト サーバのリストが格納されます。Array 内の各要素については下記の通りです。
名前形式概要説明
ipAddress String IP アドレス サーバの IP アドレスです。IPv4 形式のアドレスを想定しています。
port Number ポート番号 サーバのポート番号です。番号は 0 〜 65535 のいずれかのはずで、多くの場合既定ポートである 1092 です。
nameRaw String サーバ名 (生) ロビーサーバから取得したサーバ名に文字コード変換を行っただけものです。
nameQuoted String サーバ名 (HTML エスケープ済み) nameRaw からサーバ人数部分を除去し、 HTML (XHTML) で使用される特殊文字 (<, >, ", ', &) をエスケープしたものです。 なお、& は元々 XOPS のサーバ名として利用できない文字であるため、基本的には出現しません。
nameHTML String サーバ名 (HTML 加工済み) nameQuoted に自動リンク処理を行ったものです。 自動リンクについては別記していますので、そちらを参照してください。
maxPlayers Number 最大プレイヤー数 サーバの最大プレイヤー人数です。
playersMax Number 推定プレイヤー最大 サーバでプレイ中のプレイヤーの最大数です (推定)。
playersMin Number 推定プレイヤー最小 playersMax の反対で、最小数です (推定)。
playersStr String プレイヤー数文字 現在のプレイヤー数の目安となる文字です。
E現在のプレイヤー数が最大プレイヤー数に対して 3 分の 1 未満
H現在のプレイヤー数が最大プレイヤー数に対して 3 分の 1 以上 3 分の 2 未満
F現在のプレイヤー数が最大プレイヤー数に対して 3 分の 2 以上
countryName String 設置国名 サーバの IP アドレスを基に推定した、サーバの設置されている国の英語名です。 推定に失敗した場合は "Unknown" が格納されます。
countryCode String 設置国コード サーバの IP アドレスを基に推定した、サーバの設置されている国のコードです。 推定に失敗した場合は "xx" が格納されます。
例: jp (日本), us (アメリカ), kr (韓国) など
language String 言語 サーバの設置国を基に推定した、サーバ名に使われている言語です。 推定に失敗した場合は空文字列が格納されます。
例: ja (日本語), en-US (アメリカ英語), kr (韓国語) など
charset String 文字コード サーバの設置国を基に推定した、サーバ名に使われている文字コードです。 推定に失敗した場合は "Windows-1252" が格納されます。
例: SJIS-win (Windows 日本語版環境で一般的, CP932), Windows-1252 (Windows 英語版環境で一般的, CP1252), UHC (Windows 韓国語版環境で一般的, CP949) など
isInvalid Boolean 不正エントリ? このサーバの情報が不正なものであるかを示します。 不正な点がある場合は true、ない場合は false が格納されます。
不正なエントリと判断される例: IP アドレスが正しい形式でない、ポート番号が 0 〜 65535 の範囲外である など
isBlacklisted Boolean ブラックリスト入り? このサーバが API のブラックリストに入っているかを示します。 ブラックリストに入っている場合は true、入っていない場合は false が格納されます。
ブラックリストに入る条件の例: サーバ名に危険なウェブサイト (フィッシングサイトなど) への URL が含まれている、など

自動リンクについて

以下のような形式の文字列は自動的にリンクされます。

「http://〜」など 解析の際に ux.nu を利用し、安全性チェックを行います。 危険なサイトであると判断された場合は isBlacklisted が true になり、リンク先が Google セーフ ブラウジング ページになります。 危険でないと判断されたリンクについては ux.nu にて生成された短縮 URI を経由するように行われます。
「オフィロダ」など OFFICE Uploader にリンクされます。
「ofi123」など OFFICE Uploader の当該のファイルのダウンロードページにリンクされます。
「otz123」など OTZ Uploader の当該のファイルのダウンロードページにリンクされます。