API ドキュメント
すべての API は IPv4 / IPv6 に対応し、登録なしで利用できます。API キーを使うと上限が上がります。ベース URL: https://bgp.cx
クイックスタート
$ curl https://bgp.cx/api/ip/8.8.8.8 { "ip": "8.8.8.8", "version": 4, "country": "United States", "country_code": "US", "region": "California", "timezone": "America/Chicago", "isp": "Google LLC", "asn": 15169, "asn_organization": "Google LLC", "network": "8.8.8.0/24" }
コマンドライン
curl・wget・PowerShell・HTTPie などからのアクセスには自動でテキストを返します。
| コマンド | 説明 |
|---|---|
curl https://bgp.cx | 自分の IP |
curl -4 https://bgp.cx | IPv4 を指定 |
curl -6 https://bgp.cx | IPv6 を指定 |
curl https://bgp.cx/info | 自分の IP の詳細 |
curl https://bgp.cx/ip/1.1.1.1 | 指定 IP を検索 |
curl https://bgp.cx/ip/github.com | ドメインを検索(自動解決) |
curl https://bgp.cx/asn/4134 | ASN とプレフィックスを検索 |
wget -qO- https://bgp.cx | wget |
irm https://bgp.cx/api/ip | PowerShell |
JSON API
/api/ip · /api/ip/{ip|domain}統合結果を JSON で返します。引数なしならアクセス元を検索します。旧パス /geoip、/json も利用できます。
/api/lookup?q={ip|domain}完全な結果:info は検索結果、resolved はドメインの解決結果です。
/ip · /jsonipアクセス元 IP のみを、テキストまたは {"ip":"…"} で返します。
ASN
/asn/{asn} · /api/asn/{asn}ASN の名称・ドメイン・国・ネットワーク種別と広報プレフィックスを返します。family=4 または 6 でプロトコルを絞り込み、limit(最大 10000)と offset でページングします。{asn} は 4134 でも AS4134 でも構いません。
レスポンス項目
| 項目 | 説明 |
|---|---|
ip / version | IP アドレス / 4 または 6 |
country / country_code | 国・地域名 / ISO 3166 コード |
region / region_code | 都道府県・州 |
city / district | 都市 / 区・郡 |
continent_en / country_en / region_en / city_en / district_en | 英語の地名(リクエスト言語が英語以外で、データに英語名がある場合) |
isp / organization | 回線事業者 / 組織 |
asn / asn_organization / asn_domain | AS 番号 / AS 名 / AS ドメイン |
usage_type | 利用種別:Broadband、Mobile、DataCenter、Cloud、CDN、VPN、Spider、AICrawler、Business、Education など |
area_code / city_code / phone_code | 行政区画コード / 市外局番 / 国際電話番号 |
country_alpha3 / flag | ISO 3166-1 alpha-3 コード / 国旗 |
currency / currency_name / languages | 通貨コード / 通貨名 / 言語 |
network | ネットワーク(CIDR) |
latitude / longitude | おおよその緯度経度(都市と一致する場合のみ) |
timezone / continent | タイムゾーン / 大陸 |
scope | 非公開アドレスの種別:private、loopback、cgnat、reserved など |
データのないフィールドは結果に含まれません。返されるフィールドは API プランによって異なります(各プランはデータベースのエディションのフィールドに対応、価格ページ参照)。キーなしの場合はサイトの設定に従います。
単一フィールド API
/ip/{ip}/{field}1 つの値だけをテキストで返します(スクリプト向け)。上記の項目に加え、location(所在地全体)と loc("緯度,経度")も使えます。{ip} に me を指定すると自分の IP を検索します。
共通パラメータ
| パラメータ | 説明 |
|---|---|
lang | 結果の言語:zh-CN、en、ja、de、fr、ru、es、pt-BR |
format | json または text で形式を指定 |
pretty | JSON を整形して出力 |
callback | JSONP コールバック名 |
key | API キー(検索のみ)。Authorization: Bearer ヘッダーを推奨 |
すべての JSON API はクロスオリジンに対応しています(Access-Control-Allow-Origin: *)。
API キーと上限
キーなしは IP ごと(IPv6 は /64 単位)、キーありはアカウントごとにプランの上限が適用されます。超過すると 429 と Retry-After ヘッダーを返します。
レート制限と上限
API キー付きのリクエストはアカウント単位で計測され、毎分のリクエスト数と 1 日のクエリ数は API プラン(有料プランがない場合は無料版の枠)で決まり、0 時にリセットされます。キーなしのリクエストは IP(IPv6 は /64)ごとに毎分の回数が制限され、サイトによっては 1 日の回数も制限されます。超過すると 429 を返し、Retry-After に待機秒数が入ります。
| レスポンスヘッダー | 説明 |
|---|---|
X-RateLimit-Limit | 毎分のリクエスト上限 |
X-Quota-Limit | 1 日の検索上限(無制限時は省略) |
X-Quota-Remaining | 本日の残り検索数 |
データベース
/api/databasesエディション一覧。<code>editions</code> は公開中の全エディションとフィールド。API キー付きの場合 <code>downloads</code> にダウンロード可能なエディションとファイル(名前・形式・サイズ・SHA-256・ビルド日時)が含まれます。
/dl/{file}購入済みエディションのファイルをダウンロードします。{file} はファイル名(例:ipdb-insight.mmdb、ipdb-insight-v4.xdb)。API キーは Authorization: Bearer ヘッダーで送信。Range による再開に対応し、再カウントされません。
アカウントは本人専用です。1 日にダウンロードできるネットワーク(IPv4 アドレス / IPv6 /64)の数に上限があり、ウェブで発行したリンクは発行元のネットワークでのみ有効です。
オフライン DB のフィールド、ファイル形式、コード例は データベース文書 をご覧ください。
パスと WAF
検索とダウンロードはすべて固定プレフィックスを使うため、WAF / CDN でパス単位の許可リストやキャッシュ規則を設定できます。互換性のため /{ip} のようなルートパスも使えます(ブラウザは /ip/ にリダイレクト)。管理者は無効にできます。
| パスプレフィックス | 説明 |
|---|---|
/ip/ | IP / ドメイン検索ページ、テキスト、単一フィールド |
/asn/ | ASN ページとテキスト |
/api/ | JSON API(スクリプトから頻繁に呼ばれるためチャレンジをかけないでください) |
/dl/ | データベースファイルのダウンロード(大きいのでキャッシュしない) |
エラー
| ステータス | 意味 |
|---|---|
400 | IP・ドメインが無効、またはドメインを解決できません |
401 | API キーが無効、またはダウンロード時に認証情報がありません |
403 | このデータベースへの権限がない、または回数・ネットワーク数の上限に達しました |
404 | 見つかりません |
429 | リクエストが多すぎます |
エラーは {"error":"…","code":400} 形式、ターミナルには error: … のテキストで返します。