跳到正文

Quake 主机索引聚合统计

接口说明

对 quake_host(主机维度网络测绘资产)索引执行分组聚合统计。在给定 Quake 查询语句的命中结果范围内,按指定字段(端口、服务、产品、操作系统、国家、运营商等)做 terms 聚合,返回每个字段各取值的资产数量分布(Top N)。

请求地址

https://api.f.360.cn/api/v3/aggregation/quake_host

请求方法

POST

请求参数

名称类型位置是否必填示例值说明
querystringbody是-查询语句(支持的字段为获取聚合数据筛选字段接口返回的字段)
rulestringbody否-类型为IP列表的主机数据收藏名称
ip_listList[string]body否-IP列表
sizeintbody否-分页大小
aggregation_listList[string]body是-需要获取的聚合名称列表 [注:最多仅支持聚合两个字段]
ignore_cacheboolbody否-是否忽略缓存
start_timestringbody否-查询起始时间,接受2020-10-14 00:00:00格式的数据,时区为UTC
end_timestringbody否-查询截止时间,接受2020-10-14 00:00:00格式的数据,时区为UTC
lateststringbody否-是否只统计最新数据(去重库 unique);false 使用全量库

响应参数

一级字段二级字段类型可选值描述
codeInteger | String0响应状态码,0 表示成功
messagestring响应说明
dataobject聚合结果,key 为聚合字段名
data.{field}array指定字段的聚合结果列表
data.{field}keyInteger | String聚合值(数值型字段返回 int,字符串字段返回 string)
data.{field}doc_countinteger该值对应的文档数量
metaobject固定返回空对象 {}

请求示例

支持cUrl、Python、Java、PHP、Go语言的请求,示例如下

#!/usr/bin/env bash
set -euo pipefail

APPID=""  # apikey
SECRET=""  # salt
URL="https://api.f.360.cn/api/v3/aggregation/quake_host"
BODY='{"query":"country_cn: \"中国\"","aggregation_list":["port","isp"],"size":5,"latest":true}'

NONCE=$(printf '%08d' $((RANDOM % 100000000)))
TIMESTAMP=$(date +%s)
BODY_MD5=$(printf '%s' "$BODY" | openssl dgst -md5 -hex | awk '{print $NF}')
SIGNATURE=$(printf '%s' "${BODY_MD5}${APPID}${NONCE}${TIMESTAMP}${SECRET}" | openssl dgst -md5 -hex | awk '{print $NF}')
SIGNATURE=${SIGNATURE:16}

curl --location --request POST "$URL" \
  --header "Content-Type: application/json" \
  --header "X-360-Key: ${APPID}" \
  --header "X-360-Nonce: ${NONCE}" \
  --header "X-360-Timestamp: ${TIMESTAMP}" \
  --header "X-360-Signature: ${SIGNATURE}" \
  --data "${BODY}"

响应示例

业务正常响应

{
    "code": 0,
    "message": "Successful.",
    "data": {
        "port": [
            {"key": 80, "doc_count": 44908404},
            {"key": 443, "doc_count": 36000019},
            {"key": 22, "doc_count": 32788709},
            {"key": 21, "doc_count": 29553234},
            {"key": 1701, "doc_count": 21480709}
        ],
        "isp": [
            {"key": "中国电信", "doc_count": 38483471},
            {"key": "中国联通", "doc_count": 37321738},
            {"key": "亚马逊", "doc_count": 19725878},
            {"key": "中华电信股份有限公司", "doc_count": 7900265},
            {"key": "中国移动", "doc_count": 6551892}
        ]
    },
    "meta": {}
}

业务异常响应

{
    "code": "t6003",
    "message": "查询请求出错,请检查查询语句,或者与管理员联系",
    "data": {},
    "meta": {}
}
{
  "code": "q3005",
  "message": "调用API过于频繁",
  "data": {},
  "meta": {}
}
{
    "code": "GC00105", 
    "src": "apiholder",
    "msg": "appid over field"
}