一、数据尺寸
以下数据统计采集自版本2025/06/11的原始数据,每个快照版本会有所变化,但是大体差不多,仅供参考:
1. 数据版本:V4-高级版
2. 数据行数:22614657行
3. 空间大小:3748249720字节 = 3.5G,生成的满载版的XDB文件大概350MiB左右
二、数据样本
以下数据样本采集自某一个快照的离线.txt原始数据,仅供参考:
223.246.231.124|223.246.231.124|3757500284|3757500284|亚洲|中国|广东|深圳|南山|联通|113.93029|22.53291|440305|0755|518000|Asia/Shanghai|CNY|AS17816|11|CHXX0120 223.246.231.125|223.246.231.125|3757500285|3757500285|亚洲|中国|安徽|合肥|长丰|电信|117.16549|32.47959|340121|0551|231100|Asia/Shanghai|CNY|AS4134|22|CHXX0448 223.246.231.126|223.246.231.127|3757500286|3757500287|亚洲|中国|安徽|合肥|蜀山|电信|117.26104|31.85117|340104|0551|230000|Asia/Shanghai|CNY|AS4134|22|CHXX0448 223.246.231.128|223.246.231.128|3757500288|3757500288|亚洲|中国|安徽|合肥|肥东|电信|117.47128|31.88525|340122|0551|230000|Asia/Shanghai|CNY|AS4134|22|CHXX0448 223.246.231.129|223.246.231.129|3757500289|3757500289|亚洲|中国|安徽|合肥|包河|电信|117.30984|31.79502|340111|0551|230000|Asia/Shanghai|CNY|AS4134|22|CHXX0448
三、字段描述
每一行代表一个IP数据段和其对应的数据信息,不同字段使用|隔开,每一行的字段数是相同的,字段本身无值的使用空字符串代替。
223.246.222.233|223.246.222.234|3757498089|3757498090|亚洲|中国|广东|深圳|宝安|电信|113.88311|22.55371|440306|0755|518100|Asia/Shanghai|CNY|AS4134|11|CHXX0120
例如,如上数据从左至右分别对应如下表格的字段(从上至下):(表结构方便您将数据导入到数据库中使用)
字段值 | 字段说明 | 字段名 | 字段类型 | 字段长度 |
223.246.222.233 | ip块起始ip | ip_start | varchar | 20 |
223.246.222.234 | ip块结束ip | ip_end | varchar | 20 |
3757498089 | ip块起始ip整形 | ip_start_num | bigint | 20 |
3757498090 | 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 |
11 | 海拔 | elevation | varchar | 50 |
CHXX0120 | 气象站 | weather_station | varchar | 50 |
四、查询和字段检索
XDB存储格式将上述的原始数据标准化为通用格式:起始IP|结束IP|定位信息,调用XDB查询接口返回的数据只有后面的定位信息,例如使用XDB查询客户端查询IP223.246.222.233会返回如下的字符串定位信息:
3757498089|3757498090|亚洲|中国|广东|深圳|宝安|电信|113.88311|22.55371|440306|0755|518100|Asia/Shanghai|CNY|AS4134|11|CHXX0120
如果我要继续取用其中的字段,需要对数据使用|切割,然后再通过下标索引去提取,例如:
var region = 'XDB查询出来的定位信息,假设为上述定位信息'; var fields = region.split('|'); // 通过 | 对定位信息进行切割 // fields 的数字索引结构如下: [ 0: 3757498089, 1: 3757498090, 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: 11, 17: CHXX0120 ]; // 接下来就可以通过下标取对应的字段了。 print(fields[3]); // 国家 print(fields[5]); // 城市 print(fields[6]); // 区县 print(fields[13]); // 时区 print(fields[15]); // ASN号 ...
如果使用的XDB文件进行了自定义字段的生成,使用方式不变,只是定位信息切割后字段的索引下标会发生改变,选取正确的下标获取指定字段值即可。
离线数据字段都是经过标准化处理的,如果某个字段缺失会默认使用空字符串代替,也就是相同的下标取到的一定是对应的字段,无值会返回空字符串,例如如下的有空值的样本数据:
3757495483|3757495483|北美洲|美国|California|Los Angeles||美国电话电报公司|-118.243680|34.052230|||90009|America/Los_Angeles|USD|AS7018||
上述数据的行政区码,电话区号都没有,fields[10]和fields[11]都会返回空字符串。