一、数据尺寸
以下数据统计采集自版本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地址,而不会被分配给其他设备 |