データベース文書

オフライン DB は本サイトの検索と同じデータです。自社サーバーに配置してローカルで検索でき、ネットワーク不要で回数制限もありません。各エディションは mmdb と xdb の 2 形式で、IPv4 と IPv6 の両方を収録しています。

  • mmdb:1 ファイルで IPv4 と IPv6 を収録し、全フィールド(中国語・英語名)を含みます。構造は GeoIP2-City 互換のため、既存の mmdb ライブラリでそのまま読めます。
  • xdb:IPv4 と IPv6 で別ファイル。各レコードは | 区切りの 18 セグメントのテキストで、サイズが小さく高速なため高負荷のサービスに向いています。
  • 毎月 1 日に更新されます。エディションごとにファイル名は固定なので、ファイルを置き換えるだけで更新できます。

ファイルとエディション

ファイル名はエディションコードで決まります(例:ipdb-enterprise):

ファイル形式内容
ipdb-enterprise.mmdbmmdbIPv4 + IPv6、エディションの全フィールド
ipdb-enterprise-v4.xdbxdbIPv4、18 セグメントの地域テキスト
ipdb-enterprise-v6.xdbxdbIPv6、18 セグメントの地域テキスト

エディションごとに収録フィールドが異なります。下の表の「収録エディション」列、または ダウンロード の比較表をご覧ください。

エディションコードフィールド数形式
スタンダードcity6mmdb xdb
プロフェッショナルdistrict11mmdb xdb
ASN ルーティング版asn8mmdb xdb
フラッグシップinsight15mmdb xdb
エンタープライズ版enterprise25mmdb xdb

フィールド

mmdb パスはドットで階層を、[0] で配列の先頭を表します。xdb 位置は 18 セグメントの地域テキスト内の番号で、「—」は xdb に含まれないことを示します。例は 42.203.32.1 の実データです。

位置情報

フィールド説明mmdb パスxdb 位置収録エディション
大陸
continent
大陸名(中国語)。mmdb には 2 文字コード continent.code もあります
例 亚洲
continent.names.zh-CN 1 全エディション
国コード
country_code
国・地域の ISO 3166-1 2 文字コード
例 CN
country.iso_code 18 全エディション
国
country
国・地域名(中国語)
例 中国
country.names.zh-CN 2 全エディション
都道府県・州
province
第 1 級行政区(省・州)の中国語名
例 辽宁
subdivisions[0].names.zh-CN 3 スタンダードプロフェッショナルフラッグシップエンタープライズ版
都市
city
都市名(中国語)
例 鞍山
city.names.zh-CN 4 スタンダードプロフェッショナルフラッグシップエンタープライズ版
区・郡
district
区・県の中国語名(主に中国本土)
例 铁东
extra.district.zh-CN 5 プロフェッショナルフラッグシップエンタープライズ版
行政区画コード
geo_id
行政区画コード(中国本土は 6 桁の国家標準コード)。区または都市単位
例 210302
extra.geo_id 9 プロフェッショナルフラッグシップエンタープライズ版
経度
longitude
経度(WGS-84)、地域の中心点
例 122.990852
location.longitude 7 プロフェッショナルフラッグシップエンタープライズ版
緯度
latitude
緯度(WGS-84)、地域の中心点
例 41.089748
location.latitude 8 プロフェッショナルフラッグシップエンタープライズ版
タイムゾーン
timezone
IANA タイムゾーン名
例 Asia/Shanghai
location.time_zone 12 プロフェッショナルフラッグシップエンタープライズ版

ネットワーク / ASN

フィールド説明mmdb パスxdb 位置収録エディション
ISP
isp
ISP 名
例 中国电信
traits.isp 6 全エディション
ASN
asn
AS 番号。mmdb では整数、xdb では AS 接頭辞付き
例 4134
traits.autonomous_system_number 14 ASN ルーティング版フラッグシップエンタープライズ版
AS 名
as_name
AS 名
例 CHINANET BACKBONE
traits.autonomous_system_organization — ASN ルーティング版フラッグシップエンタープライズ版
AS ドメイン
as_domain
AS 運用組織のドメイン
例 chinatelecom.com.cn
traits.domain — ASN ルーティング版フラッグシップエンタープライズ版
利用種別
usage_type
利用タイプ(Broadband、Mobile、DataCenter、CDN など)。mmdb の traits.user_type は小文字
例 Broadband
traits.user_type 15 ASN ルーティング版フラッグシップエンタープライズ版

英語名

フィールド説明mmdb パスxdb 位置収録エディション
大陸(英語)
continent_en
大陸名(英語)
例 Asia
continent.names.en — エンタープライズ版
国(英語)
country_en
国・地域名(英語)
例 China
country.names.en — エンタープライズ版
都道府県(英語)
province_en
第 1 級行政区の英語名
例 Liaoning
subdivisions[0].names.en — エンタープライズ版
都市(英語)
city_en
都市名(英語)
例 Anshan
city.names.en — エンタープライズ版
区・郡(英語)
district_en
区・県の英語名
例 Tiedong
extra.district.en — エンタープライズ版

国際情報

フィールド説明mmdb パスxdb 位置収録エディション
ISO alpha-3
country_alpha3
国・地域の ISO 3166-1 3 文字コード
例 CHN
extra.country_alpha3 — エンタープライズ版
言語
languages
現地の主な言語コード(複数はカンマ区切り)
例 zh-CN
extra.languages — エンタープライズ版
通貨コード
currency_code
現地通貨の ISO 4217 コード
例 CNY
extra.currency_code 13 エンタープライズ版
国番号
phone_prefix
国際電話番号の国番号(+ なし)
例 86
extra.phone_prefix 10 エンタープライズ版
国旗絵文字
emoji_flag
国旗の絵文字
例 🇨🇳
extra.emoji_flag — エンタープライズ版

mmdb 形式

mmdb の構造は GeoIP2-City 互換です。continent・country・subdivisions・city・location は標準どおりで、名称は zh-CN と en を収録。ISP・ASN・利用タイプは traits、区・行政区画コードなどの拡張項目は extra にあります。

42.203.32.1 の全フィールドのレコード(フィールドが少ないエディションはその一部):

ipdb-enterprise.mmdb
{
  "continent": { "code": "AS", "names": { "en": "Asia", "zh-CN": "亚洲" } },
  "country": { "iso_code": "CN", "names": { "en": "China", "zh-CN": "中国" } },
  "registered_country": { "iso_code": "CN", "names": { "en": "China", "zh-CN": "中国" } },
  "subdivisions": [ { "names": { "en": "Liaoning", "zh-CN": "辽宁" } } ],
  "city": { "names": { "en": "Anshan", "zh-CN": "鞍山" } },
  "location": { "latitude": 41.089748, "longitude": 122.990852, "time_zone": "Asia/Shanghai" },
  "isp": "中国电信",
  "autonomous_system_number": 4134,
  "autonomous_system_organization": "CHINANET BACKBONE",
  "traits": {
    "isp": "中国电信",
    "autonomous_system_number": 4134,
    "autonomous_system_organization": "CHINANET BACKBONE",
    "domain": "chinatelecom.com.cn",
    "user_type": "broadband"
  },
  "extra": {
    "district": { "en": "Tiedong", "zh-CN": "铁东" },
    "geo_id": "210302",
    "country_alpha3": "CHN",
    "currency_code": "CNY",
    "phone_prefix": "86",
    "languages": "zh-CN",
    "emoji_flag": "🇨🇳",
    "usage_type": "Broadband"
  }
}

メタデータの database_type は IP-City、languages は zh-CN と en、description にエディション名とデータ月、build_epoch に生成日時が入ります。

xdb 形式

xdb は IPv4 と IPv6 の 2 ファイル(v3 構造、ベクトルインデックス)です。各ネットワークは | 区切り 18 セグメントの地域テキストに対応し、データのないセグメントは空です:

位置セグメント名対応フィールド
1continent大陸 continent
2country国 country
3province都道府県・州 province
4city都市 city
5district区・郡 district
6ispISP isp
7longitude経度 longitude
8latitude緯度 latitude
9area_code行政区画コード geo_id
10city_code国番号 phone_prefix
11zip_code予約(常に空)
12time_zoneタイムゾーン timezone
13currency通貨コード currency_code
14asnASN asn
15usage_type利用種別 usage_type
16elevation予約(常に空)
17weather_station予約(常に空)
18country_code国コード country_code

例(42.203.32.1):

亚洲|中国|辽宁|鞍山|铁东|中国电信|122.990852|41.089748|210302|86||Asia/Shanghai|CNY|AS4134|Broadband|||CN

xdb は中国語名のみです。英語名、国の 3 文字コード、言語、国旗、AS 名、AS ドメインは mmdb のみに含まれます。ASN には AS 接頭辞が付きます。

読み込み例

以下は言語に依存しない擬似コードです。mmdb / xdb ライブラリはどの言語でも同じ流れです:ファイルを開き、IP で検索し、フィールドのパスまたはセグメント番号で値を取り出します。ファイル名はダウンロードしたエディションに置き換えてください。

mmdb

任意の mmdb ライブラリでファイルを開きます。IP で検索するとネストした辞書 / オブジェクトが返るので、上表の mmdb パスで値を取り出します。レコードがない場合は空です。

db     = open_mmdb("ipdb-enterprise.mmdb")
record = db.lookup("42.203.32.1")

country  = record.country.names["zh-CN"]           // 中国
province = record.subdivisions[0].names["zh-CN"]   // 辽宁
city     = record.city.names["zh-CN"]              // 鞍山
district = record.extra.district["zh-CN"]          // 铁东
isp      = record.traits.isp                       // 中国电信
asn      = record.traits.autonomous_system_number  // 4134
lat, lon = record.location.latitude, record.location.longitude

xdb

v3 構造対応の xdb ライブラリで IP バージョンに合ったファイル(IPv6 は -v6.xdb)を開きます。検索結果の地域テキストを | で 18 セグメントに分割し、インデックスで取り出します(0 始まり、上表の位置 − 1)。

db     = open_xdb("ipdb-enterprise-v4.xdb")
region = db.search("42.203.32.1")
// "亚洲|中国|辽宁|鞍山|铁东|中国电信|122.990852|41.089748|210302|86||Asia/Shanghai|CNY|AS4134|Broadband|||CN"

parts   = split(region, "|")
country = parts[1]    // 中国
city    = parts[3]    // 鞍山
isp     = parts[5]    // 中国电信
asn     = parts[13]   // AS4134

ダウンロードと更新

プラン購入後、アカウントセンター で購入済みエディションのファイルをダウンロードするか、API キー付きの curl コマンドをコピーしてください。

サーバーで取得(API キーはヘッダーに指定、レジューム対応):

curl -LOJ -C - -H "Authorization: Bearer ipk_xxx" https://bgp.cx/dl/ipdb-enterprise.mmdb

/api/databases は購入済みエディションのファイル一覧(サイズ、SHA-256、生成日時)を返します。検証や更新確認に使えます。詳しくは API ドキュメント。

データは毎月 1 日に更新されます。例:毎月 2 日 4:00 に最新版を自動取得:

0 4 2 * * curl -sfL -o /opt/ipdb/ipdb-enterprise.mmdb.new -H "Authorization: Bearer ipk_xxx" https://bgp.cx/dl/ipdb-enterprise.mmdb && mv /opt/ipdb/ipdb-enterprise.mmdb.new /opt/ipdb/ipdb-enterprise.mmdb

注意事項

  • データのないフィールドは mmdb レコードに含まれず、xdb では空セグメントになります。
  • プライベート・予約アドレス(10.0.0.0/8、192.168.0.0/16 など)は mmdb に含まれず結果はありません。xdb では予約を示すレコードを返します。
  • 緯度経度は行政区の中心点です。地域レベルの表示向けで、正確な位置特定には使えません。
  • データは購入アカウントがライセンスの範囲内でのみ利用できます。再販や公開配布はできません。