说明
接口以POST方式调用,body格式为json,其中旧字段名将于后续版本中删除。
1. request body数据样例
{
"host": "test.baishancloud.com",
"info": [{
"time_local": 1608793247,
"@timestamp": "2020-12-24T15:00:47.000+0800",
"url_pattern": "test.baishancloud.com/inc/ajax.php?ac=digg&ac2=&tab=vod+union+select*//**//*+null,md5(1231412414)+from+mac_manager+--%20",
"url.pattern": "test.baishancloud.com/inc/ajax.php?ac=digg&ac2=&tab=vod+union+select*//**//*+null,md5(1231412414)+from+mac_manager+--%20",
"reason": "SQL注入",
"event.reason": "SQL注入",
"perspective_name": "ip",
"atd.key": "ip",
"perspective_value": "124.1.1.2",
"atd.value": "124.1.1.2",
"policy_id": "100101",
"rule.id": "100101",
"pv": 20,
"event.pageview_count": 20,
"ip": "124.1.1.2",
"client.ip": "124.1.1.2",
"url": "test.baishancloud.com/inc/ajax.php",
"url.original": "test.baishancloud.com/inc/ajax.php",
"path": "/inc/ajax.php",
"url.path": "/inc/ajax.php",
"score": 100,
"event.risk_score": 100,
"time_range": [1608793187, 1608793247],
"event.start": "2020-12-24T14:59:47.000+0800",
"event.end": "2020-12-24T15:00:47.000+0800",
"atdrt_report_time_local": "2020-12-24T15:00:47.448+0800",
"event.created": "2020-12-24T15:00:47.448+0800",
"path_count": 1,
"path_pv": 1,
"event.path_count": 1,
"sliding_window": "1min",
"rule.duration": "1min",
"expire": 1800,
"expire_time": 1800,
"respond.duration": 1800,
"host": "test.baishancloud.com",
"atd.domain": "test.baishancloud.com",
"service": "web",
"service.type": "web",
"service_category": "web",
"event.type": "web",
"engine_type": "policy",
"event.provider": "policy",
"action": "online",
"event.action": "online",
"country": "韩国",
"client.geo.country_name": "韩国",
"province": "Seoul-teukbyeolsi",
"client.geo.region_name": "Seoul-teukbyeolsi",
"district": "-",
"client.geo.district_name": "-",
"city": "Seoul",
"client.geo.city_name": "Seoul",
"idc": "-",
"client.as.organization.name": "-",
"export_ip": 10,
"client.export_probability": 10,
"not_ban_reason": "未开启拦截",
"respond.ignore_reason": "未开启拦截",
"action_ban": false,
"is_data_center": "no",
"in_white_list": false,
"ip_tag": [],
"tags": [],
"logical_operator": "and",
"rule.logical_operator": "and",
"search_engine_name": "",
"client.search_engine_name": "",
"respond.status": [],
"ip_credit": "{\"is_legal\": \"yes\", \"is_local\": \"no\", \"latest\": [], \"trend\": [[1606147200, 0, null], [1606233600, 0, null], [1606320000, 0, null], [1606406400, 0, null], [1606492800, 0, null], [1606579200, 0, null], [1606665600, 0, null], [1606752000, 0, null], [1606838400, 0, null], [1606924800, 0, null], [1607011200, 0, null], [1607097600, 0, null], [1607184000, 0, null], [1607270400, 0, null], [1607356800, 0, null], [1607443200, 0, null], [1607529600, 0, null], [1607616000, 0, null], [1607702400, 0, null], [1607788800, 0, null], [1607875200, 0, null], [1607961600, 0, null], [1608048000, 0, null], [1608134400, 0, null], [1608220800, 0, null], [1608307200, 0, null], [1608393600, 0, null], [1608480000, 0, null], [1608566400, 0, null], [1608652800, 0, null], [1608739200, 0, null]], \"score\": null, \"ip\": \"124.1.1.2\", \"addr\": [{\"country\": \"\\u97e9\\u56fd\", \"province\": \"Seoul-teukbyeolsi\", \"city\": \"Seoul\", \"district\": \"-\", \"accuracy\": \"\\u57ce\\u5e02\\u7ea7\", \"location\": {\"latitude\": \"37.572457\", \"longitude\": \"126.973047\", \"radius\": \"\"}, \"idc\": \"-\", \"user\": \"-\"}], \"search_engine\": {\"name\": \"\", \"status\": \"\"}, \"credit\": {\"is_local\": \"no\", \"dirty\": \"0.00\", \"office\": 10.41, \"family\": 6.59, \"base_station\": 3.16, \"edu_station\": 3.16, \"person\": 11, \"active\": 5, \"user_count\": 1, \"export_ip\": 10}, \"services\": [], \"tag_list\": [], \"ports\": [], \"is_near\": true, \"is_black\": \"no\", \"is_spam\": \"no\", \"is_proxy\": \"no\", \"is_virus\": \"no\", \"is_tor\": \"no\", \"is_wangba\": \"no\", \"is_data_center\": \"no\", \"type\": {}, \"is_abuse\": \"no\", \"is_spider\": \"no\", \"export_score\": \"60\", \"cache_at\": 1608790831}",
"client.credit": "{\"is_legal\": \"yes\", \"is_local\": \"no\", \"latest\": [], \"trend\": [[1606147200, 0, null], [1606233600, 0, null], [1606320000, 0, null], [1606406400, 0, null], [1606492800, 0, null], [1606579200, 0, null], [1606665600, 0, null], [1606752000, 0, null], [1606838400, 0, null], [1606924800, 0, null], [1607011200, 0, null], [1607097600, 0, null], [1607184000, 0, null], [1607270400, 0, null], [1607356800, 0, null], [1607443200, 0, null], [1607529600, 0, null], [1607616000, 0, null], [1607702400, 0, null], [1607788800, 0, null], [1607875200, 0, null], [1607961600, 0, null], [1608048000, 0, null], [1608134400, 0, null], [1608220800, 0, null], [1608307200, 0, null], [1608393600, 0, null], [1608480000, 0, null], [1608566400, 0, null], [1608652800, 0, null], [1608739200, 0, null]], \"score\": null, \"ip\": \"124.1.1.2\", \"addr\": [{\"country\": \"\\u97e9\\u56fd\", \"province\": \"Seoul-teukbyeolsi\", \"city\": \"Seoul\", \"district\": \"-\", \"accuracy\": \"\\u57ce\\u5e02\\u7ea7\", \"location\": {\"latitude\": \"37.572457\", \"longitude\": \"126.973047\", \"radius\": \"\"}, \"idc\": \"-\", \"user\": \"-\"}], \"search_engine\": {\"name\": \"\", \"status\": \"\"}, \"credit\": {\"is_local\": \"no\", \"dirty\": \"0.00\", \"office\": 10.41, \"family\": 6.59, \"base_station\": 3.16, \"edu_station\": 3.16, \"person\": 11, \"active\": 5, \"user_count\": 1, \"export_ip\": 10}, \"services\": [], \"tag_list\": [], \"ports\": [], \"is_near\": true, \"is_black\": \"no\", \"is_spam\": \"no\", \"is_proxy\": \"no\", \"is_virus\": \"no\", \"is_tor\": \"no\", \"is_wangba\": \"no\", \"is_data_center\": \"no\", \"type\": {}, \"is_abuse\": \"no\", \"is_spider\": \"no\", \"export_score\": \"60\", \"cache_at\": 1608790831}"
}]
}
字段解释:
旧字段名 | 新字段名 | 类型 | 取值范围 | 说明 |
---|---|---|---|---|
host | host | string | - | 域名 |
info | info | array | - | 拦截数据数组 |
info[0].time_local | info[0].@timestamp | int | - | unix 时间戳 |
info[0].perspective_name | info[0].”atd.key” | enum | [“ip”,”id”] | 分析维度的名称,目前ATD支持的分析维度有IP和ID两种,其中ID为用户指定的user_id、device_id等可以唯一标示一个用户的ID |
info[0].perspective_value | info[0].”atd.value” | string | - | 分析维度的值 |
info[0].ip | info[0].”client.ip” | string | - | 当分析维度为IP时,值为攻击IP;当分析维度不为IP时,攻击IP可能为多个,所以值为攻击IP列表,多IP之间以,分割 |
info[0].path | info[0].”url.path” | string | - | 被访问最多的路径 |
info[0].path_count | info[0].”event.path_count” | int | - | 被访问最多路径的请求数 |
info[0].pv | info[0].”event.pageview_count” | int | - | 本次时间窗⼝内的总请求数 |
info[0].engine_type | info[0].”event.provider” | enum | [“policy”,”deep”,”learning”] | 识别本次攻击的算法引擎的名称,policy:实时引擎,deep:深度引擎,learning:学习引擎 |
info[0].reason | info[0].”event.reason” | string | - | 命中的攻击类型,目前ATD可以识别的攻击类型包括:爬虫、账号类攻击、CC攻击、慢速攻击、异常流量包攻击、刷单类攻击、路径扫描、危险UA、SQL注入、命令注入、跨站脚本、异常路径访问等 |
info[0].url_pattern | info[0].”url.pattern” | string | - | 路径特征,具有相同结构的url用url_pattern表示,如www.abc.com/a/123.html和www.abc.com/a/456.html的url_pattern为www.abc.com/a/*.html |
info[0].expire | info[0].”respond.duration” | int | [60-86400] | 被拦截IP禁用时长,IP每次被识别为威胁拦截时的禁用时长,单位为:秒。禁用时长到期后,IP解禁可继续访问 |
info[0].score | info[0].”event.risk_score” | int | [1-100] | 威胁分数,1-25为疑似,26-55为低威胁,56-85为中威胁,86-100为高威胁 |
info[0].action | info[0].”event.action” | string | - | 命中的攻击判定策略配置的处理动作 |
info[0].time_range | int | - | 时间窗口 | |
info[0].event.start | string | - | 窗口开始 | |
info[0].event.end | string | - | 窗口结束 | |
info[0].atdrt_report_time_local | info[0].event.created | string | - | 事件产生时间 |
以下数据只在perspective_name为ip时有效:
旧字段名 | 新字段名 | 类型 | 取值范围 | 解释 |
---|---|---|---|---|
info[0].in_white_list | boolean | [true,false] | 是否在⽩名单中 | |
info[0].is_data_center | enum | [“yes”, “no”] | 是否是数据中心/云服务商 | |
info[0].tags | enum | [‘abuse’, ‘black’, ‘c2’, ‘local’, ‘proxy’, ‘spam’, ‘spider’, ‘tor’, ‘virus’, ‘wangba’, ‘white_list’, ‘ban’] | 关于事件或ip的若干标签 | |
info[0].country | info[0].”client.geo.country_name” | string | - | 国家 |
info[0].province | info[0].”client.geo.region_name” | string | - | 省 |
info[0].city | info[0].”client.geo.city_name” | string | - | 市 |
info[0].district | info[0].”client.geo.district_name” | string | - | 区 |
info[0].idc | info[0].”client.as.organization.name” | string | - | 机房或网络运营商 |
info[0].export_ip | info[0].”client.export_probability” | float | [0-100] | 人群出口IP的概率,返回的数据中省略了%,推荐参考值,当该值大于60时可以认为是人群出口IP |
info[0].ip_credit | info[0].”client.credit” | object | - | IP信⽤等级数据,json格式,需解析 |
info[0].ip_credit.is_local | info[0].”client.credit”.is_local | enum | [“yes”,”no”] | 是否为内网IP |
info[0].ip_credit.search_engine | info[0].”client.credit”.search_engine | object | - | 搜索引擎IP信息 |
info[0].ip_credit.search_engine.status | info[0].”client.credit”.search_engine.status | enum | [“yes”,”no”,””] | 当前IP是否为健康的搜索引擎爬虫IP,”yes”:健康的搜索引擎IP,”no”:恶意的搜索引擎IP,”“:不是搜索引擎IP |
info[0].ip_credit.search_engine.name | info[0].”client.credit”.search_engine.name | string | - | 具体的搜索引擎名称 |
info[0].ip_credit.is_near | info[0].”client.credit”.is_near | boolean | [true,false] | 内部临时数据,可忽略 |
info[0].ip_credit.addr | info[0].”client.credit”.addr | array | - | IP地址信息 |
info[0].ip_credit.addr[0].province | info[0].”client.credit”.addr[0].province | string | - | 省份 |
info[0].ip_credit.addr[0].city | info[0].”client.credit”.addr[0].city | string | - | 城市 |
info[0].ip_credit.addr[0].district | info[0].”client.credit”.addr[0].district | string | - | 地区 |
info[0].ip_credit.addr[0].country | info[0].”client.credit”.addr[0].country | string | - | 国家 |
info[0].ip_credit.addr[0].location | info[0].”client.credit”.addr[0].location | object | - | IP地理位置信息 |
info[0].ip_credit.addr[0].location.latitude | info[0].”client.credit”.addr[0].location.latitude | float | - | IP的纬度 |
info[0].ip_credit.addr[0].location.radius | info[0].”client.credit”.addr[0].location.radius | float | - | IP覆盖范围半径,单位:KM |
info[0].ip_credit.addr[0].location.longitude | info[0].”client.credit”.addr[0].location.longitude | float | - | IP的经度 |
info[0].ip_credit.addr[0].idc | info[0].”client.credit”.addr[0].idc | string | - | 机房或网络运营商 |
info[0].ip_credit.addr[0].accuracy | info[0].”client.credit”.addr[0].accuracy | enum | [“洲”,”国家”,”省”,”城市”,”区县”,”街道”] | 地理位置的精确度 |
info[0].ip_credit.cache_at | info[0].”client.credit”.cache_at | int | - | 内部临时数据,可忽略 |
info[0].ip_credit.export_score | info[0].”client.credit”.export_score | string | - | 内部临时数据,可忽略 |
info[0].ip_credit.ip | info[0].”client.credit”.ip | string | - | 返回的IP,如果 |
info[0].ip_credit.credit | info[0].”client.credit”.credit | object | - | IP信用数据 |
info[0].ip_credit.credit.user_count | info[0].”client.credit”.credit.user_count | int | [1-9] | 人数范围标识:’1’:’1’,’2’:’2-5’,’3’:’6-10’,’4’:’11-30’,’5’:’31-50’,’6’:’51-100’,’7’:’101-500’,’8’:’501-2000’,’9’:’2000+’ |
info[0].ip_credit.credit.office | info[0].”client.credit”.credit.office | float | [0-100] | 当前IP为办公网的概率 |
info[0].ip_credit.credit.family | info[0].”client.credit”.credit.family | float | [0-100] | 当前IP为住宅小区的概率 |
info[0].ip_credit.credit.export_ip | info[0].”client.credit”.credit.export_ip | float | [0-100] | 当前IP为人群出口的概率 |
info[0].ip_credit.credit.person | info[0].”client.credit”.credit.person | float | [0-100] | 当前IP为真人的概率 |
info[0].ip_credit.credit.dirty | info[0].”client.credit”.credit.dirty | float | [0-100] | 当前IP的污点概率 |
info[0].ip_credit.credit.active | info[0].”client.credit”.credit.active | float | [0-100] | 当前IP的活跃度 |
info[0].ip_credit.credit.base_station | info[0].”client.credit”.credit.base_station | float | [0-100] | 当前IP是基站的概率 |
info[0].ip_credit.credit.edu_station | info[0].”client.credit”.credit.edu_station | float | [0-100] | 当前IP是教育网的概率 |
info[0].ip_credit.is_virus | info[0].”client.credit”.is_virus | enum | [“yes”,”no”] | 传入IP是否有病毒标签 |
info[0].ip_credit.is_abuse | info[0].”client.credit”.is_abuse | enum | [“yes”,”no”] | 传入IP是否有恶意活动标签 |
info[0].ip_credit.is_spider | info[0].”client.credit”.is_spider | enum | [“yes”,”no”] | 传入IP是否有爬虫标签 |
info[0].ip_credit.is_spam | info[0].”client.credit”.is_spam | enum | [“yes”,”no”] | 传入IP是否有垃圾邮件标签 |
info[0].ip_credit.is_legal | info[0].”client.credit”.is_legal | enum | [“yes”,”no”] | 传入IP是否符合语法标准 |
info[0].ip_credit.is_black | info[0].”client.credit”.is_black | enum | [“yes”,”no”] | 传入IP是否为高危IP |
info[0].ip_credit.is_data_center | info[0].”client.credit”.is_data_center | enum | [“yes”,”no”] | 传入IP是否为数据中心IP |
info[0].ip_credit.is_proxy | info[0].”client.credit”.is_proxy | enum | [“yes”,”no”] | 传入IP是否为代理IP |
info[0].ip_credit.is_tor | info[0].”client.credit”.is_tor | enum | [“yes”,”no”] | 传入IP是否为洋葱路由IP |
info[0].ip_credit.is_wangba | info[0].”client.credit”.is_wangba | enum | [“yes”,”no”] | 传入IP是否为网吧IP |
info[0].ip_credit.trend | info[0].”client.credit”.trend | array | - | 威胁趋势 |
info[0].ip_credit.trend[0][0] | info[0].”client.credit”.trend[0][0] | int | - | 日期0点时间戳 |
info[0].ip_credit.trend[0][1] | info[0].”client.credit”.trend[0][1] | int | - | 记录数量 |
info[0].ip_credit.trend[0][2] | info[0].”client.credit”.trend[0][2] | enum | [“low”,”medium”,”high”,null] | 威胁等级 |
info[0].ip_credit.score | info[0].”client.credit”.score | enum | [“low”,”medium”,”high”,null] | 威胁等级 |
info[0].ip_credit.type | info[0].”client.credit”.type | dict | - | 历史威胁事件名称和计数的key-val对 |
info[0].ip_credit.latest | info[0].”client.credit”.latest | array | - | 近期威胁事件记录 |
info[0].ip_credit.latest[0].timestamp | info[0].”client.credit”.latest[0].timestamp | int | - | 更新时间戳 |
info[0].ip_credit.latest[0].hits | info[0].”client.credit”.latest[0].hits | int | - | 命中次数 |
info[0].ip_credit.latest[0].score | info[0].”client.credit”.latest[0].score | enum | [“low”,”medium”,”high”,null] | 威胁等级 |
info[0].ip_credit.latest[0].type | info[0].”client.credit”.latest[0].type | string | - | 威胁事件名称 |
info[0].ip_credit.latest[0].loc | info[0].”client.credit”.latest[0].loc | string | - | 攻击源地理位置 |
说明:
在ATD中,当某IP的人群出口IP概率值(info[0].export_ip)大于60时,认为是人群出口IP。
2. response body数据样例
{
"code": 0,
"msg": "success",
"data": []
}
字段解释:
字段名 | 类型 | 取值范围 | 解释 |
---|---|---|---|
code | int | - | 调⽤结果, 0表示成功,⾮0表示失败 |
msg | string | - | 提示信息 |
data | array | - | ⽤于返回结果数据,这⾥填空数组即可 |
3. 调用示例
说明:
1、在验证时,我们将向您发送如上样例的POST数据包;
2、如果在3秒内返回结果,并且(1)返回的数据为JSON格式;(2)code值为0,则将验证通过。
[root@bs203 ~]# curl http://172.18.1.203:8001/v1/firewall/action -d '
{
"host": "test.baishancloud.com",
"info": [{
"time_local": 1608793247,
"@timestamp": "2020-12-24T15:00:47.000+0800",
"url_pattern": "test.baishancloud.com/inc/ajax.php?ac=digg&ac2=&tab=vod+union+select*//**//*+null,md5(1231412414)+from+mac_manager+--%20",
"url.pattern": "test.baishancloud.com/inc/ajax.php?ac=digg&ac2=&tab=vod+union+select*//**//*+null,md5(1231412414)+from+mac_manager+--%20",
"reason": "SQL注入",
"event.reason": "SQL注入",
"perspective_name": "ip",
"atd.key": "ip",
"perspective_value": "124.1.1.2",
"atd.value": "124.1.1.2",
"policy_id": "100101",
"rule.id": "100101",
"pv": 20,
"event.pageview_count": 20,
"ip": "124.1.1.2",
"client.ip": "124.1.1.2",
"url": "test.baishancloud.com/inc/ajax.php",
"url.original": "test.baishancloud.com/inc/ajax.php",
"path": "/inc/ajax.php",
"url.path": "/inc/ajax.php",
"score": 100,
"event.risk_score": 100,
"time_range": [1608793187, 1608793247],
"event.start": "2020-12-24T14:59:47.000+0800",
"event.end": "2020-12-24T15:00:47.000+0800",
"atdrt_report_time_local": "2020-12-24T15:00:47.448+0800",
"event.created": "2020-12-24T15:00:47.448+0800",
"path_count": 1,
"path_pv": 1,
"event.path_count": 1,
"sliding_window": "1min",
"rule.duration": "1min",
"expire": 1800,
"expire_time": 1800,
"respond.duration": 1800,
"host": "test.baishancloud.com",
"atd.domain": "test.baishancloud.com",
"service": "web",
"service.type": "web",
"service_category": "web",
"event.type": "web",
"engine_type": "policy",
"event.provider": "policy",
"action": "online",
"event.action": "online",
"country": "韩国",
"client.geo.country_name": "韩国",
"province": "Seoul-teukbyeolsi",
"client.geo.region_name": "Seoul-teukbyeolsi",
"district": "-",
"client.geo.district_name": "-",
"city": "Seoul",
"client.geo.city_name": "Seoul",
"idc": "-",
"client.as.organization.name": "-",
"export_ip": 10,
"client.export_probability": 10,
"not_ban_reason": "未开启拦截",
"respond.ignore_reason": "未开启拦截",
"action_ban": false,
"is_data_center": "no",
"in_white_list": false,
"ip_tag": [],
"tags": [],
"logical_operator": "and",
"rule.logical_operator": "and",
"search_engine_name": "",
"client.search_engine_name": "",
"respond.status": [],
"activeLearning": "{\"model_status\": \"not ready\"}",
"_id": "1608793247_test.baishancloud.com_ip_124.1.1.2_lqi9Xl",
"ip_credit": "{\"is_legal\": \"yes\", \"is_local\": \"no\", \"latest\": [], \"trend\": [[1606147200, 0, null], [1606233600, 0, null], [1606320000, 0, null], [1606406400, 0, null], [1606492800, 0, null], [1606579200, 0, null], [1606665600, 0, null], [1606752000, 0, null], [1606838400, 0, null], [1606924800, 0, null], [1607011200, 0, null], [1607097600, 0, null], [1607184000, 0, null], [1607270400, 0, null], [1607356800, 0, null], [1607443200, 0, null], [1607529600, 0, null], [1607616000, 0, null], [1607702400, 0, null], [1607788800, 0, null], [1607875200, 0, null], [1607961600, 0, null], [1608048000, 0, null], [1608134400, 0, null], [1608220800, 0, null], [1608307200, 0, null], [1608393600, 0, null], [1608480000, 0, null], [1608566400, 0, null], [1608652800, 0, null], [1608739200, 0, null]], \"score\": null, \"ip\": \"124.1.1.2\", \"addr\": [{\"country\": \"\\u97e9\\u56fd\", \"province\": \"Seoul-teukbyeolsi\", \"city\": \"Seoul\", \"district\": \"-\", \"accuracy\": \"\\u57ce\\u5e02\\u7ea7\", \"location\": {\"latitude\": \"37.572457\", \"longitude\": \"126.973047\", \"radius\": \"\"}, \"idc\": \"-\", \"user\": \"-\"}], \"search_engine\": {\"name\": \"\", \"status\": \"\"}, \"credit\": {\"is_local\": \"no\", \"dirty\": \"0.00\", \"office\": 10.41, \"family\": 6.59, \"base_station\": 3.16, \"edu_station\": 3.16, \"person\": 11, \"active\": 5, \"user_count\": 1, \"export_ip\": 10}, \"services\": [], \"tag_list\": [], \"ports\": [], \"is_near\": true, \"is_black\": \"no\", \"is_spam\": \"no\", \"is_proxy\": \"no\", \"is_virus\": \"no\", \"is_tor\": \"no\", \"is_wangba\": \"no\", \"is_data_center\": \"no\", \"type\": {}, \"is_abuse\": \"no\", \"is_spider\": \"no\", \"export_score\": \"60\", \"cache_at\": 1608790831}",
"client.credit": "{\"is_legal\": \"yes\", \"is_local\": \"no\", \"latest\": [], \"trend\": [[1606147200, 0, null], [1606233600, 0, null], [1606320000, 0, null], [1606406400, 0, null], [1606492800, 0, null], [1606579200, 0, null], [1606665600, 0, null], [1606752000, 0, null], [1606838400, 0, null], [1606924800, 0, null], [1607011200, 0, null], [1607097600, 0, null], [1607184000, 0, null], [1607270400, 0, null], [1607356800, 0, null], [1607443200, 0, null], [1607529600, 0, null], [1607616000, 0, null], [1607702400, 0, null], [1607788800, 0, null], [1607875200, 0, null], [1607961600, 0, null], [1608048000, 0, null], [1608134400, 0, null], [1608220800, 0, null], [1608307200, 0, null], [1608393600, 0, null], [1608480000, 0, null], [1608566400, 0, null], [1608652800, 0, null], [1608739200, 0, null]], \"score\": null, \"ip\": \"124.1.1.2\", \"addr\": [{\"country\": \"\\u97e9\\u56fd\", \"province\": \"Seoul-teukbyeolsi\", \"city\": \"Seoul\", \"district\": \"-\", \"accuracy\": \"\\u57ce\\u5e02\\u7ea7\", \"location\": {\"latitude\": \"37.572457\", \"longitude\": \"126.973047\", \"radius\": \"\"}, \"idc\": \"-\", \"user\": \"-\"}], \"search_engine\": {\"name\": \"\", \"status\": \"\"}, \"credit\": {\"is_local\": \"no\", \"dirty\": \"0.00\", \"office\": 10.41, \"family\": 6.59, \"base_station\": 3.16, \"edu_station\": 3.16, \"person\": 11, \"active\": 5, \"user_count\": 1, \"export_ip\": 10}, \"services\": [], \"tag_list\": [], \"ports\": [], \"is_near\": true, \"is_black\": \"no\", \"is_spam\": \"no\", \"is_proxy\": \"no\", \"is_virus\": \"no\", \"is_tor\": \"no\", \"is_wangba\": \"no\", \"is_data_center\": \"no\", \"type\": {}, \"is_abuse\": \"no\", \"is_spider\": \"no\", \"export_score\": \"60\", \"cache_at\": 1608790831}"
}]
}
'
{
"msg": "success",
"code": 0,
"data": []
}