はじめに
現在、ARIN、RIPE NCC、APNIC、LACNIC、AfriNIC の5つの地域インターネットレジストリ(RIR : Regional Internet Registry)が管理しており、
それぞれが管轄する地域の国にIPアドレスを配分しています。
どの国にどのIPアドレスを割り当てているかという情報は、各RIRがデータベース化しており、公開しています。
本 API は、その情報を利用してIPアドレスからそのIPアドレスが割り当てあられている国コードが検索することができます。
国コードは
ISO 3166-1 alpha-2
で定義されている国名コードが返ります。必ずしも ccTLD と一致するとは限りません。
本ドキュメントに関する注意事項
API の仕様は予告なく変更される可能性があります。
過度な連続アクセスなどは予告なしに制限をかける場合があります。
バージョン
本ドキュメントで記載した内容は、平成26年7月1日より適用されています。
認証
認証なしでのアクセス
本 API の提供する機能は、認証なしで利用できます。
プロトコル
本 API は JSON-RPC Version 2.0 を利用しています。
詳しくは、英語版Wikipedia の JSON-RPC を参照してください。
利用方法
エンドポイントURIに対し、application/json のデータを POST してください。
国コードの検索
エンドポイントは次のURIです。
http://cc.29lab.jp/json-rpc
エンドポイントに対して、以下の様な application/json のデータをPOSTします。
{ "jsonrpc": "2.0", "method": "resolve", "params": { "ipaddress": "133.242.167.213" }, "id": 1 }
- jsonrpc
- プロトコルのバージョンを指定します。 ここでは、"2.0" 固定です。
- method
- 呼び出すメソッドの名前を指定します。 ここでは、"resolve" 固定です。
- params
- メソッドの引数です。
- ipaddress
- 国コードを検索したいIPアドレスを指定します。
- id
- 呼び出し一つ一つに付与されたIDです。エラーメッセージの返却などに使用されます。
このAPIが返すデータはJSON形式になっています。
{ "jsonrpc": "2.0", "result": { "ipaddress": "133.242.167.213", "country_code": "JP" }, "id": 1 }
送ってくるオブジェクトには以下の様なプロパティが含まれています。
- jsonrpc
- プロトコルのバージョンです。 ここでは、"2.0" 固定です。
- result
- 結果です。
- ipaddress
- 国コードを検索したIPアドレスです。
- country_code
- 検索結果の国コード(ISO 3166-1 alpha-2)です。
- id
- リクエストで渡した id と同じです。
エラーが発生した場合、JSON-RPCに準拠したエラーが返ります。 詳しくは、英語版Wikipedia の JSON-RPCを参照してください。
デモ
下のテキストボックにIPアドレスを入力し、【検索】ボタンをクリックすると国コードが取得できます。
変更履歴
- 平成26年7月1日 公開