跳到正文

Quake 主机索引数据检索

接口说明

按 Quake 查询语句(QRule DSL)在 quake_host(主机维度网络测绘资产)索引中检索资产,返回以主机 IP 为核心、聚合其下多个服务/端口的结构化数据,支持分页、时间范围过滤、返回字段裁剪与多种输出格式。 与 quake_service(单条服务记录)不同,quake_host 以主机为单位组织数据,一个 IP 下挂载多个 services(端口/服务)。

请求地址

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

请求方法

POST

请求参数

名称类型位置是否必填示例值说明
querystringbody是-Quake 查询语句(QRule DSL);传空按 * 处理
rulestringbody否-类型为IP列表的服务数据收藏名称
ip_listList[string]body否-IP列表
startintbody否0分页起始
sizeintbody否10分页大小
ignore_cacheboolbody否false是否忽略缓存
start_timestringbody否-查询起始时间,接受2020-10-14 00:00:00格式的数据,时区为UTC
end_timestringbody否-查询截止时间,接受2020-10-14 00:00:00格式的数据,时区为UTC
includeList(string)body否-包含字段
excludeList(string)body否-排除字段
lateststringbody否-是否只统计最新数据(去重库 unique);false 使用全量库

响应参数

一级字段二级字段类型可选值描述
codeInteger | String0响应状态码,0 表示成功
messagestring响应说明
dataarray查询结果列表,每条记录对应一个主机
dataipstringIP 地址
datahostnamestring主机名,无则为空字符串
dataorgstring所属组织
dataasnintegerASN 编号
datais_ipv6booleantrue/false是否为 IPv6
datatimestringISO8601最新数据更新时间

data.services(主机上的服务列表)

一级字段二级字段类型说明
data.servicesarray该主机上检测到的所有服务
data.servicesportinteger服务端口
data.servicesnamestring服务名称
data.servicestransportstring传输协议(tcp/udp)
data.servicesversionstring服务协议版本
data.servicescertstring服务证书,无则为空字符串
data.servicesservice_idstring服务记录唯一标识
data.servicestimestring该服务数据更新时间(ISO8601)
data.servicescomponentsarray识别出的产品组件列表(结构同服务索引检索接口)

data.location

一级字段二级字段类型说明
data.locationobject地理位置信息
data.locationcountry_cnstring国家(中文)
data.locationcountry_enstring国家(英文)
data.locationcountry_codestring国家代码
data.locationprovince_cnstring省份(中文)
data.locationprovince_enstring省份(英文)
data.locationcity_cnstring城市(中文)
data.locationcity_enstring城市(英文)
data.locationdistrict_cnstring区县(中文)
data.locationdistrict_enstring区县(英文)
data.locationstreet_cnstring街道(中文)
data.locationstreet_enstring街道(英文)
data.locationgpsarray经纬度坐标 [longitude, latitude]
data.locationradiusnumber定位精度(公里)
data.locationispstring网络运营商
data.locationownerstring资产所有者
data.locationasnamestringASN 名称
data.locationscene_cnstring场景类型(中文)
data.locationscene_enstring场景类型(英文)

meta

一级字段二级字段类型说明
metaobject元数据
meta.paginationobject分页信息
meta.paginationcountinteger当前页返回数量
meta.paginationpage_indexinteger当前页码
meta.paginationpage_sizeinteger每页数量
meta.paginationtotalinteger总记录数

请求示例

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

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

APPID=""  # apikey
SECRET=""  # salt
URL="https://api.f.360.cn/api/v3/search/quake_host"
BODY='{"query":"country_cn: \"中国\" AND services.port: 22","start":0,"size":10,"latest":true,"include":["ip","hostname","asn","org","time","location.country_cn","location.province_cn","location.city_cn","location.country_en","location.province_en","location.city_en","location.gps"]}'

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": [
        {
            "hostname": "",
            "org": "Alibaba Cloud",
            "ip": "47.239.173.172",
            "asn": 45102,
            "is_ipv6": false,
            "time": "2026-07-03T05:08:19.848Z",
            "location": {
                "owner": "",
                "province_cn": "香港",
                "isp": "阿里云",
                "province_en": "Hongkong",
                "country_en": "China",
                "district_cn": "",
                "gps": [114.184921, 22.350617],
                "street_cn": "",
                "city_en": "Hongkong",
                "district_en": "",
                "country_cn": "中国",
                "street_en": "",
                "city_cn": "香港",
                "country_code": "CN",
                "asname": "ALIBABA-CN-NET",
                "scene_cn": "数据中心",
                "scene_en": "Hosting",
                "radius": 40.0088
            },
            "services": [
                {
                    "components": [
                        {
                            "product_level": "服务协议层",
                            "product_type": ["常见网络服务"],
                            "product_vendor": "openssh",
                            "product_name_cn": "OpenSSH",
                            "product_name_en": "openssh",
                            "id": "5e831df9421aa99e9885e4bc",
                            "product_catalog": ["网络设备与服务"],
                            "version": "7.4"
                        }
                    ],
                    "port": 22,
                    "service_id": "e446749d37e55d8ebfa7c75513a0ab08",
                    "name": "ssh",
                    "cert": "",
                    "transport": "tcp",
                    "time": "2026-05-28T23:41:47.644Z",
                    "version": "2.0"
                },
                {
                    "components": [],
                    "port": 32080,
                    "service_id": "6f42e3d08ee759b3aa076d026ab23973",
                    "name": "socks-proxy",
                    "cert": "",
                    "transport": "tcp",
                    "time": "2025-06-12T02:50:12.407Z",
                    "version": ""
                }
            ]
        }
    ],
    "meta": {
        "pagination": {
            "count": 10,
            "page_index": 1,
            "page_size": 10,
            "total": 1000
        }
    }
}

业务异常响应

{
    "code": "t6003",
    "message": "查询请求出错,请检查查询语句,或者与管理员联系",
    "data": {},
    "meta": {}
}
{
    "code": "GC00105", 
    "src": "apiholder",
    "msg": "appid over field"
}
{
    "code": "q2001",
    "message": "用户当前积分不足以完成本次查询操作。",
    "data": {},
    "meta": {}
}

Quake 检索类接口业务错误码(HTTP 状态码均为 200,通过 code 字段区分):

codemessage说明
0Successful.查询成功
q2001用户当前积分不足以完成本次查询操作。账号积分不足,无法完成本次检索,需充值或联系管理员提升积分
q2001筛选字段传参错误: [xxx], 请调用可筛选字段接口查看可筛选字段include/exclude 传入了不在白名单内的字段,先调用对应索引的可筛选字段接口获取白名单
q3005调用API过于频繁触发接口调用频率限制,降低调用频率(建议两次检索间隔15秒以上)后重试