資料庫文件
離線資料庫與本站查詢使用同一份資料,部署在你自己的伺服器上本地查詢,不依賴網路,也沒有呼叫次數限制。每個版本都提供 mmdb 和 xdb 兩種格式,涵蓋 IPv4 和 IPv6。
- mmdb:一個檔案同時包含 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 另有兩位大洲代碼 continent.code 範例 亚洲 |
continent. |
1 | 全部版本 |
國家代碼country_code |
國家/地區 ISO 3166-1 兩位代碼 範例 CN |
country. |
18 | 全部版本 |
國家country |
國家/地區中文名 範例 中国 |
country. |
2 | 全部版本 |
省份 / 州province |
省份 / 州等一級行政區中文名 範例 辽宁 |
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 位置 | 包含於 |
|---|---|---|---|---|
電信業者isp |
電信業者名稱 範例 中国电信 |
traits. |
6 | 全部版本 |
ASN 號asn |
自治系統號(AS 號);mmdb 中為整數,xdb 中帶 AS 前綴 範例 4134 |
traits. |
14 | ASN 路由版旗艦版企業版 |
AS 名稱as_name |
自治系統(AS)名稱 範例 CHINANET BACKBONE |
traits. |
— | ASN 路由版旗艦版企業版 |
AS 網域as_domain |
自治系統所屬機構的網域 範例 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 |
一級行政區英文名 範例 Liaoning |
subdivisions[0]. |
— | 企業版 |
城市(英文)city_en |
城市英文名 範例 Anshan |
city. |
— | 企業版 |
區縣(英文)district_en |
區縣英文名 範例 Tiedong |
extra. |
— | 企業版 |
國際化
| 欄位 | 說明 | mmdb 路徑 | xdb 位置 | 包含於 |
|---|---|---|---|---|
國家三碼country_alpha3 |
國家/地區 ISO 3166-1 三位代碼 範例 CHN |
extra. |
— | 企業版 |
語言languages |
當地常用語言代碼,多個時以逗號分隔 範例 zh-CN |
extra. |
— | 企業版 |
貨幣代碼currency_code |
當地貨幣 ISO 4217 代碼 範例 CNY |
extra. |
13 | 企業版 |
電話區碼phone_prefix |
國際電話區碼(不含 +) 範例 86 |
extra. |
10 | 企業版 |
國旗 Emojiemoji_flag |
國旗 Emoji 範例 🇨🇳 |
extra. |
— | 企業版 |
mmdb 格式
mmdb 的資料結構相容 GeoIP2-City:continent、country、subdivisions、city、location 與標準結構一致,名稱提供 zh-CN 和 en 兩種語言;電信業者、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 兩個檔案(v3 結構,向量索引)。每個網段對應一條以 | 分隔的 18 段區域文字,沒有資料的段為空:
| 位置 | 段名 | 對應欄位 |
|---|---|---|
| 1 | continent | 洲別 continent |
| 2 | country | 國家 country |
| 3 | province | 省份 / 州 province |
| 4 | city | 城市 city |
| 5 | district | 區縣 district |
| 6 | 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 只包含中文名稱;英文名稱、國家三位代碼、語言、國旗、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 Key 的 curl 指令。
在伺服器上拉取(API Key 放在請求標頭中,支援續傳):
/api/databases 回傳已購版本的檔案清單(大小、SHA-256、建置時間),可以用來校驗檔案和判斷是否有新版本,詳見 API 文件。
資料每月 1 號更新,例如每月 2 號凌晨 4 點自動拉取最新版本:
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 中回傳標記為保留的記錄。
- 經緯度是所在行政區的中心點,只適合地區級顯示,不能用於精確定位。
- 資料僅供購買帳號在授權範圍內使用,不得轉售或公開散布。