データベース文書
オフライン DB は本サイトの検索と同じデータです。自社サーバーに配置してローカルで検索でき、ネットワーク不要で回数制限もありません。各エディションは mmdb と xdb の 2 形式で、IPv4 と IPv6 の両方を収録しています。
- mmdb:1 ファイルで IPv4 と IPv6 を収録し、全フィールド(中国語・英語名)を含みます。構造は GeoIP2-City 互換のため、既存の mmdb ライブラリでそのまま読めます。
- xdb:IPv4 と IPv6 で別ファイル。各レコードは
|区切りの 18 セグメントのテキストで、サイズが小さく高速なため高負荷のサービスに向いています。 - 毎月 1 日に更新されます。エディションごとにファイル名は固定なので、ファイルを置き換えるだけで更新できます。
ファイルとエディション
ファイル名はエディションコードで決まります(例:ipdb-enterprise):
| ファイル | 形式 | 内容 |
|---|---|---|
ipdb-enterprise.mmdb | mmdb | IPv4 + IPv6、エディションの全フィールド |
ipdb-enterprise-v4.xdb | xdb | IPv4、18 セグメントの地域テキスト |
ipdb-enterprise-v6.xdb | xdb | IPv6、18 セグメントの地域テキスト |
エディションごとに収録フィールドが異なります。下の表の「収録エディション」列、または ダウンロード の比較表をご覧ください。
| エディション | コード | フィールド数 | 形式 |
|---|---|---|---|
| スタンダード | city | 6 | mmdb xdb |
| プロフェッショナル | district | 11 | mmdb xdb |
| ASN ルーティング版 | asn | 8 | mmdb xdb |
| フラッグシップ | insight | 15 | mmdb xdb |
| エンタープライズ版 | enterprise | 25 | mmdb xdb |
フィールド
mmdb パスはドットで階層を、[0] で配列の先頭を表します。xdb 位置は 18 セグメントの地域テキスト内の番号で、「—」は xdb に含まれないことを示します。例は 42.203.32.1 の実データです。
位置情報
| フィールド | 説明 | mmdb パス | xdb 位置 | 収録エディション |
|---|---|---|---|---|
大陸continent |
大陸名(中国語)。mmdb には 2 文字コード continent.code もあります 例 亚洲 |
continent. |
1 | 全エディション |
国コードcountry_code |
国・地域の ISO 3166-1 2 文字コード 例 CN |
country. |
18 | 全エディション |
国country |
国・地域名(中国語) 例 中国 |
country. |
2 | 全エディション |
都道府県・州province |
第 1 級行政区(省・州)の中国語名 例 辽宁 |
subdivisions[0]. |
3 | スタンダードプロフェッショナルフラッグシップエンタープライズ版 |
都市city |
都市名(中国語) 例 鞍山 |
city. |
4 | スタンダードプロフェッショナルフラッグシップエンタープライズ版 |
区・郡district |
区・県の中国語名(主に中国本土) 例 铁东 |
extra. |
5 | プロフェッショナルフラッグシップエンタープライズ版 |
行政区画コードgeo_id |
行政区画コード(中国本土は 6 桁の国家標準コード)。区または都市単位 例 210302 |
extra. |
9 | プロフェッショナルフラッグシップエンタープライズ版 |
経度longitude |
経度(WGS-84)、地域の中心点 例 122.990852 |
location. |
7 | プロフェッショナルフラッグシップエンタープライズ版 |
緯度latitude |
緯度(WGS-84)、地域の中心点 例 41.089748 |
location. |
8 | プロフェッショナルフラッグシップエンタープライズ版 |
タイムゾーンtimezone |
IANA タイムゾーン名 例 Asia/Shanghai |
location. |
12 | プロフェッショナルフラッグシップエンタープライズ版 |
ネットワーク / ASN
| フィールド | 説明 | mmdb パス | xdb 位置 | 収録エディション |
|---|---|---|---|---|
ISPisp |
ISP 名 例 中国电信 |
traits. |
6 | 全エディション |
ASNasn |
AS 番号。mmdb では整数、xdb では AS 接頭辞付き 例 4134 |
traits. |
14 | ASN ルーティング版フラッグシップエンタープライズ版 |
AS 名as_name |
AS 名 例 CHINANET BACKBONE |
traits. |
— | ASN ルーティング版フラッグシップエンタープライズ版 |
AS ドメインas_domain |
AS 運用組織のドメイン 例 chinatelecom.com.cn |
traits. |
— | ASN ルーティング版フラッグシップエンタープライズ版 |
利用種別usage_type |
利用タイプ(Broadband、Mobile、DataCenter、CDN など)。mmdb の traits.user_type は小文字 例 Broadband |
traits. |
15 | ASN ルーティング版フラッグシップエンタープライズ版 |
英語名
| フィールド | 説明 | mmdb パス | xdb 位置 | 収録エディション |
|---|---|---|---|---|
大陸(英語)continent_en |
大陸名(英語) 例 Asia |
continent. |
— | エンタープライズ版 |
国(英語)country_en |
国・地域名(英語) 例 China |
country. |
— | エンタープライズ版 |
都道府県(英語)province_en |
第 1 級行政区の英語名 例 Liaoning |
subdivisions[0]. |
— | エンタープライズ版 |
都市(英語)city_en |
都市名(英語) 例 Anshan |
city. |
— | エンタープライズ版 |
区・郡(英語)district_en |
区・県の英語名 例 Tiedong |
extra. |
— | エンタープライズ版 |
国際情報
| フィールド | 説明 | mmdb パス | xdb 位置 | 収録エディション |
|---|---|---|---|---|
ISO alpha-3country_alpha3 |
国・地域の ISO 3166-1 3 文字コード 例 CHN |
extra. |
— | エンタープライズ版 |
言語languages |
現地の主な言語コード(複数はカンマ区切り) 例 zh-CN |
extra. |
— | エンタープライズ版 |
通貨コードcurrency_code |
現地通貨の ISO 4217 コード 例 CNY |
extra. |
13 | エンタープライズ版 |
国番号phone_prefix |
国際電話番号の国番号(+ なし) 例 86 |
extra. |
10 | エンタープライズ版 |
国旗絵文字emoji_flag |
国旗の絵文字 例 🇨🇳 |
extra. |
— | エンタープライズ版 |
mmdb 形式
mmdb の構造は GeoIP2-City 互換です。continent・country・subdivisions・city・location は標準どおりで、名称は zh-CN と en を収録。ISP・ASN・利用タイプは traits、区・行政区画コードなどの拡張項目は extra にあります。
42.203.32.1 の全フィールドのレコード(フィールドが少ないエディションはその一部):
{
"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 セグメントの地域テキストに対応し、データのないセグメントは空です:
| 位置 | セグメント名 | 対応フィールド |
|---|---|---|
| 1 | continent | 大陸 continent |
| 2 | country | 国 country |
| 3 | province | 都道府県・州 province |
| 4 | city | 都市 city |
| 5 | district | 区・郡 district |
| 6 | isp | ISP isp |
| 7 | longitude | 経度 longitude |
| 8 | latitude | 緯度 latitude |
| 9 | area_code | 行政区画コード geo_id |
| 10 | city_code | 国番号 phone_prefix |
| 11 | zip_code | 予約(常に空) |
| 12 | time_zone | タイムゾーン timezone |
| 13 | currency | 通貨コード currency_code |
| 14 | asn | ASN asn |
| 15 | usage_type | 利用種別 usage_type |
| 16 | elevation | 予約(常に空) |
| 17 | weather_station | 予約(常に空) |
| 18 | country_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 キーはヘッダーに指定、レジューム対応):
/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 では予約を示すレコードを返します。
- 緯度経度は行政区の中心点です。地域レベルの表示向けで、正確な位置特定には使えません。
- データは購入アカウントがライセンスの範囲内でのみ利用できます。再販や公開配布はできません。