Справочник разработчика
Схожесть доменов
Изучите документацию API Схожесть доменов, параметры запросов, поля ответов, примеры кода и обработку ошибок для интеграций DomScan.
Схожесть доменов
Сравните два домена на наличие визуальной и текстовой схожести, используя несколько алгоритмов, включая расстояние Левенштейна, схожесть Яро-Винклера и анализ визуальных омоглифов. Необходимо для обнаружения опечаток в доменах, выдачи себя за бренд и фишинговых доменов.
GET
/v1/similarity
Параметры запроса
| Параметр | Тип | Description |
|---|---|---|
| domain1 обязателен | string | Первый домен (обычно законный домен) |
| domain2 обязателен | string | Второй домен (потенциально подозрительный домен) |
Алгоритмы схожести
| Algorithm | Описание |
|---|---|
levenshtein | Нормализованное расстояние редактирования (0-1) |
jaro_winkler | Схожесть строк с приоритетом префикса |
visual | Определение омоглифов/похожих символов |
Пример запроса
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/similarity?domain1=paypal.com&domain2=paypa1.com"
import requests
domscan = requests.Session()
domscan.headers.update({"X-API-Key": "your-api-key"})
# Check multiple suspicious domains
legit = "paypal.com"
suspects = ["paypa1.com", "paypaI.com", "pаypal.com"] # Note: last one has Cyrillic 'а'
for suspect in suspects:
response = domscan.get(
"https://domscan.net/v1/similarity",
params={"domain1": legit, "domain2": suspect}
)
data = response.json()
print(f"{suspect}: {data['typosquatting_risk']} risk (visual: {data['similarity']['visual']:.2f})")
Пример ответа
{
"domain1": "paypal.com",
"domain2": "paypa1.com",
"similarity": {
"levenshtein": 0.86,
"jaro_winkler": 0.93,
"visual": 0.95
},
"is_similar": true,
"typosquatting_risk": "high",
"homoglyphs_detected": ["l → 1"],
"risk_factors": ["character_substitution", "high_visual_similarity"]
}
Поля ответа
| Поле | Тип |
|---|---|
domain1 |
string |
domain2 |
string |
overall_similarity |
number |
risk_level |
string |
analysis |
object |
analysis.levenshtein_distance |
integer |
analysis.levenshtein_similarity |
number |
analysis.jaro_winkler_similarity |
number |
analysis.visual_similarity |
number |
analysis.keyboard_distance |
number |
analysis.common_prefix_length |
integer |
analysis.common_suffix_length |
integer |
matching_methods[] |
string[] |
is_potential_typosquat |
boolean |
checked_at |
string |
meta |
object |