一、数据尺寸

以下数据统计采集自版本2025/06/11的原始数据,每个快照版本会有所变化,但是大体差不多,仅供参考:

1. 数据版本V4-专业版

2. 数据行数22614657

3. 空间大小3838595872字节 = 3.6G,生成的满载版XDB文件大概360MiB左右

二、数据样本

以下数据样本采集自某一个快照的离线.txt原始数据,仅供参考:

223.246.253.34|223.246.253.34|3757505826|3757505826|亚洲|中国|广东|深圳|南山|电信|113.93029|22.53291|440305|0755|518000|Asia/Shanghai|CNY|AS4134|DYN|11|CHXX0120
223.246.253.35|223.246.253.35|3757505827|3757505827|亚洲|中国|安徽|合肥|长丰|电信|117.16549|32.47959|340121|0551|231100|Asia/Shanghai|CNY|AS4134|DYN|22|CHXX0448
223.246.253.36|223.246.253.36|3757505828|3757505828|亚洲|中国|安徽|合肥|蜀山|电信|117.26104|31.85117|340104|0551|230000|Asia/Shanghai|CNY|AS4134|DYN|22|CHXX0448
223.246.253.37|223.246.253.37|3757505829|3757505829|亚洲|中国|安徽|合肥|肥东|电信|117.47128|31.88525|340122|0551|230000|Asia/Shanghai|CNY|AS4134|DYN|22|CHXX0448
223.246.253.38|223.246.253.39|3757505830|3757505831|亚洲|中国|安徽|合肥|瑶海|电信|117.30947|31.85809|340102|0551|230000|Asia/Shanghai|CNY|AS4134|DYN|22|CHXX0448

三、字段描述

每一行代表一个IP数据段和其对应的数据信息,不同字段使用|隔开,每一行的字段数是相同的,字段本身无值的使用空字符串代替。

223.246.222.68|223.246.222.68|3757497924|3757497924|亚洲|中国|广东|深圳|宝安|电信|113.88311|22.55371|440306|0755|518100|Asia/Shanghai|CNY|AS4134|MOB|11|CHXX0120

例如,如上数据从左至右分别对应如下表格的字段(从上至下):(表结构方便您将数据导入到数据库中使用)

字段值 字段说明 字段名 字段类型 字段长度
223.246.222.68 ip块起始ip ip_start varchar 20
223.246.222.68 ip块结束ip ip_end varchar 20
3757497924 ip块起始ip整形 ip_start_num bigint 20
3757497924 ip块结束ip整形 ip_end_num bigint 20
亚洲 所属的七大洲 continent varchar 20
中国 国家 country varchar 50
广东 省份 province varchar 100
深圳 城市 city varchar 100
宝安区 区县 district varchar 120
电信 互联网供应商 isp varchar 100
113.88311 经度 longitude varchar 15
22.55371 纬度 latitude varchar 15
440306 行政区码 area_code varchar 100
0755 电话和区号 city_code varchar 10
518100 邮编 zip_code varchar 20
Asia/Shanghai 时区 time_zone varchar 20
CNY 货币 currency varchar 20
AS4134 ASN号 asn varchar 20
MOB 应用场景 scenes varchar 20
11 海拔 elevation varchar 50
CHXX0120 气象站 weather_station varchar 50

四、查询和字段检索

XDB存储格式将上述的原始数据标准化为通用格式:起始IP|结束IP|定位信息,调用XDB查询接口返回的数据只有后面的定位信息,例如使用XDB查询客户端查询IP223.246.222.68会返回如下的字符串定位信息:

3757497924|3757497924|亚洲|中国|广东|深圳|宝安|电信|113.88311|22.55371|440306|0755|518100|Asia/Shanghai|CNY|AS4134|MOB|11|CHXX0120

如果我要继续取用其中的字段,需要对数据使用|切割,然后再通过下标索引去提取,例如:

var region = 'XDB查询出来的定位信息,假设为上述定位信息';
var fields = region.split('|');     // 通过 | 对定位信息进行切割
// fields 的数字索引结构如下:
[
    0: 3757514968,
    1: 3757514969,
    2: 亚洲,
    3: 中国,
    4: 广东,
    5: 深圳,
    6: 宝安,
    7: 电信,
    8: 113.88311,
    9: 22.55371,
    10: 440306,
    11: 0755,
    12: 518100,
    13: Asia/Shanghai,
    14: CNY,
    15: AS4134,
    16: MOB,
    17: 11,
    18: CHXX0120
];

// 接下来就可以通过下标取对应的字段了。
print(fields[3]);       // 国家
print(fields[5]);       // 城市
print(fields[6]);       // 区县
print(fields[13]);      // 时区
print(fields[15]);      // ASN号
print(fields[16]);      // 应用场景,MOB表示手机移动网络
...

如果使用的XDB文件进行了自定义字段的生成,使用方式不变,只是定位信息切割后字段的索引下标会发生改变,选取正确的下标获取指定字段值即可。

离线数据字段都是经过标准化处理的,如果某个字段缺失会默认使用空字符串代替,也就是相同的下标取到的一定是对应的字段,无值会返回空字符串,例如如下的有空值的样本数据:

北美洲|美国|Nevada|Las Vegas||美国电话电报公司|-115.137220|36.174970|||89111|America/Los_Angeles|USD|AS20057|MOB||

上述数据的行政区码,电话区号都没有,fields[10]fields[11]都会返回空字符串。

五、应用场景描述

按照步骤四中的描述,通过fields[16]可以取出应用场景字段的值,其全部的代码和场景类型对应关系如下:

场景标识 场景类型 备注
CDN 内容分发 属于数据中心的一部分,内容分发网络
DNS 域名解析 用户提供域名解析服务的 IP
EDU 教育机构 学校/教育机构使用的 IP
GTW 企业专线 固定 IP,中大型公司专线上网的 IP
GOV 政府机构 政府单位使用的 IP
DYN 家庭宽带 家庭住宅用户使用的 IP
IDC 数据中心 机房/云服务商使用的 IP
MOB 移动网络 基站出口 IP(2G/3G/4G/5G)
ORG 组织机构 非营利性组织机构
BOGON 保留 IP 用于确保在特定情况下,计算机或设备可以在局域网中保持相同的IP地址,而不会被分配给其他设备