مرجع المطورين
تشابه النطاق
استكشف توثيق API الخاص بـ تشابه النطاق، بما في ذلك معلمات الطلب وحقول الاستجابة وأمثلة الشفرة ومعالجة الأخطاء لتكاملات DomScan.
تشابه النطاق
قارن نطاقين بحثاً عن التشابه البصري والنصي باستخدام عدة خوارزميات بما في ذلك مسافة Levenshtein وتشابه Jaro-Winkler وتحليل الأحرف المشابهة بصرياً. ضروري لكشف typosquatting والانتحال والنطاقات التصيد الاحتيالي.
GET
/v1/similarity
معاملات الاستعلام
| المعامل | النوع | Description |
|---|---|---|
| domain1 مطلوب | string | النطاق الأول (عادةً النطاق الشرعي) |
| domain2 مطلوب | string | النطاق الثاني (النطاق المريب المحتمل) |
خوارزميات التشابه
| الخوارزمية | الوصف |
|---|---|
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 |