跳到正文

URL同源网址查询

接口说明

查询同源网址,也就是向上归属组织为同一处的网址,这里的同源归类依据是 网址的IP地址,域名host,或者是域名的别名cname。查询输入可以指定其中任意一个。最终返回依据该输入的所有网址信息,包含check_time和网址对应的url、ip。后续可以根据这些网址的风险级别来评估这些查询属性是否有风险。

推荐应用场景

主要应对家族式聚合查询,通过聚合属性ip地址、主机host、或者别名cname来获取更多的url网址

请求地址

https://api.f.360.cn/urls/std/v2/homology

请求方法

POST

请求参数

参数名类型位置是否必填示例值说明
queryobjectbody是
{
  "pagenation": {
    "pageNum_": 2,
    "pageSize_": 10
  },
  "keywords": [
    {
      "field": "ip",
      "value": "220.181.38.150"
    }
  ]
}
查询条件,所有请求参数的父级结构
query.keywordsArray(object)body是
[
  {
    "field": "ip",
    "value": "220.181.38.150"
  }
]
查询条件,所有请求参数的子级结构
query.keywords.[0].fieldstringbody是ip查询条件的字段名,支持字段包括:ip,value比如比如"1.194.167.97”、域名host,value比如www.sohu.comm,cname,value比如 www.sohu.com.dsa.dnsv1.com
query.keywords.[0].valuestringbody是220.181.38.150查询条件的字段值,数据形式由field指定,为ip地址,那么value格式比如1.194.167.97、如果field为域名host, 这里取值比如www.sohu.com、如果field取别名cname, 这里取值比如www.sohu.com.dsa.dnsv1.com)
query.keywords.[1].fieldstringbody否limit查询条件的字段名,只支持limit。用于限制返回数据的数量
query.keywords.[1].valuestringbody否10查询条件的字段值,默认为10

响应参数

名称类型示例值描述
check_timestring2021-10-19 04:59:02检测时间,时间戳格式
codestring0响应状态码
dataobject
[
  {
    "check_time": "2021-10-19 04:59:02",
    "ip": "104.248.17.116",
    "url": "https://www.lkg.de/aktuelles"
  },
  {
    "check_time": "2021-11-11 01:18:07",
    "ip": "104.248.17.116",
    "url": "http://www.lkg.de"
  },
  {
    "check_time": "2021-11-06 09:30:49",
    "ip": "104.248.17.116",
    "url": "http://www.lkg.de"
  },
  {
    "check_time": "2021-11-23 02:36:49",
    "ip": "104.248.17.116",
    "url": "https://www.lkg.de"
  }
]
响应结果
ipstring104.248.17.116url所属的IP地址
msgstringok响应状态信息
urlstringhttps://www.lkg.de/aktuelles查询关联的url网址

请求示例

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

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

APPID=""  # apikey
SECRET=""  # salt
URL="https://api.f.360.cn/urls/std/v2/homology"
BODY='{"query":{"keywords":[{"field":"host","value":"www.lkg.de"}],"pagenation":{"pageNum_":1,"pageSize_":10}}}'

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}"

响应示例

业务正常响应

{
    "_oid": 1,
    "code": "0",
    "data": [
        {
            "check_time": "2024-09-21 22:31:17",
            "ip": "220.181.38.150",
            "url": "https://220.181.38.150"
        },
        {
            "check_time": "2024-11-03 16:46:19",
            "ip": "220.181.38.150",
            "url": "http://220.181.38.150"
        },
        {
            "check_time": "2024-10-11 10:16:34",
            "ip": "220.181.38.150",
            "url": "https://220.181.38.150"
        }
    ],
    "msg": "ok",
    "status": 0
}

业务异常响应

{
  "code": "GS00301",
  "msg": "param missing"
}