适用对象
使用范围明确的被动检查来补充分诊和调查,而不是替代授权测试或人工审查。
尝试搜索产品、目标、端点路径或 API 主题。
检测可能用于网络钓鱼或品牌滥用的域名仿冒威胁和相似域名。
使用范围明确的被动检查来补充分诊和调查,而不是替代授权测试或人工审查。
需要生成相似候选项并检查域名状态时选择,不把未知当作安全。
检测可能用于网络钓鱼或品牌滥用的域名仿冒威胁和相似域名。
集成前,请查看支持的操作、输入、输出、执行模式和响应限制。
2-18 需要身份验证。有关确切费用和按项计费,请查看操作参考。
使用文档化的操作来收集、评估、补充、验证、比较、保护或监测公开证据。
| 参数 | 类型 | 必需 |
|---|---|---|
| domain | string | 必需 |
| check_registered |
boolean
默认值
false
|
可选 |
| limit |
integer
默认值
100
|
可选 |
| include_tld_swap |
boolean
默认值
true
|
可选 |
| 字段 | 类型 |
|---|---|
domain |
string |
name |
string |
tld |
string |
permutations_generated |
integer |
permutations_checked |
integer |
registered_typos[] |
object[] |
registered_typos[] |
object |
registered_typos[].classification |
object |
registered_typos[].classification.status |
string |
registered_typos[].classification.reason |
string |
registered_typos[].classification.evidence |
object |
registered_typos[].classification.evidence.source |
string |
registered_typos[].classification.evidence.method |
string |
registered_typos[].classification.evidence.observed_at |
string |
registered_typos[].classification.evidence.detail |
string |
registered_typos[].classification.checked_at |
string |
registered_typos[].domain |
string |
registered_typos[].name |
string |
registered_typos[].tld |
string |
registered_typos[].type |
string |
registered_typos[].risk |
string |
registered_typos[].description |
string |
registered_typos[].registered |
boolean |
registered_typos[].checked_at |
string |
available_typos |
integer |
unknown_typos |
integer |
risk_summary |
object |
risk_summary.critical |
integer |
risk_summary.high |
integer |
risk_summary.medium |
integer |
risk_summary.low |
integer |
threat_level |
string |
family_summary |
object |
family_summary.generated_by_type |
object |
family_summary.generated_by_risk |
object |
family_summary.registered_by_type |
object |
family_summary.registered_by_risk |
object |
family_summary.top_generated_family |
string | null |
family_summary.top_registered_family |
string | null |
family_summary.critical_or_high_generated_count |
integer |
family_summary.critical_or_high_registered_count |
integer |
family_summary.coverage_ratio |
number |
family_summary.checked_count |
integer |
family_summary.available_count |
integer |
family_summary.unknown_count |
integer |
family_summary.omitted_count |
integer |
family_summary.include_tld_swap |
boolean |
family_summary.requested_limit |
integer |
checked_at |
string |
check_duration_ms |
integer |
meta |
object |
meta.served_by |
string |
meta.cached |
boolean |
meta.query_time_ms |
integer |
meta.registration_check_requested |
boolean |
meta.registration_check_limit |
integer |
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/typos?domain=google.com&check_registered=false&limit=25&include_tld_swap=true"const response = await fetch("https://domscan.net/v1/typos?domain=google.com&check_registered=false&limit=25&include_tld_swap=true", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/typos?domain=google.com&check_registered=false&limit=25&include_tld_swap=true",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/typos?domain=google.com&check_registered=false&limit=25&include_tld_swap=true", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/typos?domain=google.com&check_registered=false&limit=25&include_tld_swap=true")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body)){
"domain": "google.com",
"name": "google",
"tld": "com",
"permutations_generated": 100,
"permutations_checked": 95,
"registered_typos": [
{
"domain": "gooogle.com",
"name": "gooogle",
"tld": "com",
"type": "repetition",
"risk": "high",
"description": "Repeated character",
"registered": true
},
{
"domain": "gogle.com",
"name": "gogle",
"tld": "com",
"type": "omission",
"risk": "critical",
"description": "Missing character",
"registered": true
}
],
"available_typos": 50,
"risk_summary": {
"critical": 2,
"high": 5,
"medium": 10,
"low": 28
},
"threat_level": "high",
"checked_at": "2024-01-15T12:00:00Z"
}
200 成功400 请求错误401 未授权402 需要付款429 请求过多使用 域名仿冒检测 的 API 参考来查看参数、响应字段、示例、状态码和支持的操作模式。
未知或部分结果表示无法完全确定所请求的证据。在后续决策中保留结果状态、置信度、新鲜度和限制信息。
费用取决于操作和执行模式。有关当前积分费用、身份验证要求和按项规则,请查看端点参考。
被这些公司的人员使用