ลิงก์ เว็บไซต์ และอีเมล
ตรวจสอบลิงก์
ขอบเขต: ตรวจเฉพาะถ้อยคำและลิงก์ที่มองเห็น ไม่ยืนยันผู้ส่ง ไฟล์แนบ หรือเนื้อหาเว็บไซต์
เปิดเครื่องมือในหน้านี้
วัตถุประสงค์
ตรวจสอบหมายเลข ข้อความ และลิงก์
ตรวจเฉพาะถ้อยคำและลิงก์ที่มองเห็น ไม่ยืนยันผู้ส่ง ไฟล์แนบ หรือเนื้อหาเว็บไซต์
ข้อกำหนด
ทุกคนอ่านคู่มือเหล่านี้ได้โดยไม่ต้องมีบัญชี เครื่องมือบางอย่างต้องใช้ Pro ตามที่ระบุในแต่ละคู่มือ
ใส่ลิงก์ HTTP หรือ HTTPS ที่สมบูรณ์หนึ่งลิงก์ หรือชื่อโดเมน
วิธีใช้งาน
ตรวจสอบลิงก์หรือเว็บไซต์
ในอีเมลให้วางข้อความ ในลิงก์ให้วางที่อยู่ กดตรวจสอบแล้วดูสัญญาณและโดเมนจริง เครื่องมือไม่เปิดลิงก์หรือยืนยันตัวผู้ส่ง
อ่านข้อมูลที่มีพร้อมข้อจำกัด ผลลัพธ์ว่างไม่ได้ยืนยันความปลอดภัยหรือระบุตัวบุคคล
ตัวอย่างสมมติ
ตัวอย่างสมมติ ไม่ใช่ผลการค้นหาจริง ห้ามโทรหรือเปิดลิงก์ในตัวอย่าง
https://[email protected]/noticeทำความเข้าใจผลลัพธ์
ข้อความก่อน @ อาจซ่อนโดเมนจริงที่แสดงด้านล่าง
ใช้ HTTP โดยไม่มีการเข้ารหัส HTTPS
ตรวจโดเมนสากลอย่างระมัดระวัง อักขระบางตัวอาจดูคล้ายกัน
ใช้หมายเลข IP แทนชื่อโดเมน
ไม่พบสัญญาณเตือนที่ชัดเจน
ข้อจำกัด
ตรวจสอบบนอุปกรณ์นี้ ข้อความจะไม่ถูกส่งหรือบันทึก
ตรวจเฉพาะถ้อยคำและลิงก์ที่มองเห็น ไม่ยืนยันผู้ส่ง ไฟล์แนบ หรือเนื้อหาเว็บไซต์
การแก้ไขปัญหา
ใส่ลิงก์ HTTP หรือ HTTPS ที่สมบูรณ์หนึ่งลิงก์ หรือชื่อโดเมน
ใช้งานผ่าน API
ต้องมีคีย์ API และเครดิต การเรียกที่สำเร็จแต่ละครั้งใช้ 1 เครดิต แม้ไม่มีข้อมูลก็ตาม บัญชี Pro ที่ใช้งานอยู่มี 20 เครดิตต่อเดือนปฏิทินตามเวลา UTC ใช้ร่วมกันทุกเส้นทาง API และถูกใช้ก่อน เครดิตรายเดือนที่ไม่ได้ใช้จะไม่ทบไปเดือนถัดไป เครดิตที่ซื้อในหน้าบัญชีของคุณใช้ได้โดยไม่ต้องมี Pro และไม่มีวันหมดอายุ
ข้อผิดพลาดไม่ถูกคิดเครดิต: 401 invalid_api_key (ไม่มีคีย์หรือคีย์ไม่ถูกต้อง), 403 pro_required (ไม่มีเครดิต Pro และไม่มีเครดิตที่ซื้อไว้), 422 ข้อมูลนำเข้าไม่ถูกต้อง, 429 quota_exceeded (เครดิตหมด), rate_limit_exceeded หรือ ai_busy (AI ของ sms-check ใช้งานเต็มความสามารถ), 503 tool_warming (ข้อมูลยังเตรียมไม่เสร็จ) หรือ tool หรือผู้ให้บริการไม่พร้อมใช้งาน หลังได้รับ 429 หรือ 503 ให้ลองใหม่เมื่อครบจำนวนวินาทีในเฮดเดอร์ Retry-After
ตรวจ URL หนึ่งรายการแบบคงที่: โฮสต์ในรูปแบบ Unicode และ ASCII เป็นโดเมนทางการของแบรนด์หรือหน่วยงานรัฐหรือไม่ (และเป็นของใคร) แฟล็กเชิงโครงสร้างของลิงก์ และสัญญาณจากเอนจินกฎ ไม่มีการดึงข้อมูล ไม่ติดตามการเปลี่ยนเส้นทาง และไม่ตรวจชื่อเสียง
ส่ง JSON body ไปยังเส้นทางของ tool นั้นโดยตรง หรือไปยัง POST /v2/tools โดยเพิ่มฟิลด์ tool ทั้งสองเส้นทางให้ผลลัพธ์เหมือนกัน
POST https://api.nocall.io/v2/link-check
POST https://api.nocall.io/v2/tools {"tool":"link-check","url":"http://192.168.1.1/login","country":"ES"}พารามิเตอร์
| ชื่อ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| url | string (1–2000) | ใช่ | URL ที่จะตรวจ จะไม่ถูกดึงข้อมูลเด็ดขาด |
| country | string (enum, 55) | ไม่ (ค่าเริ่มต้น: "ES") | ประเทศของชุดกฎ SMS ที่ใช้ |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/link-check' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"url":"http://192.168.1.1/login","country":"ES"}'import json
import os
import urllib.request
import uuid
api_key = os.environ.get('NOCALL_API_KEY')
if not api_key:
raise SystemExit('Set NOCALL_API_KEY')
request = urllib.request.Request(
'https://api.nocall.io/v2/link-check',
method='POST',
data=json.dumps({'url': 'http://192.168.1.1/login', 'country': 'ES'}).encode(),
headers={
'Authorization': 'Bearer ' + api_key,
'Content-Type': 'application/json',
'Idempotency-Key': str(uuid.uuid4()),
},
)
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
print(result['data']['result'], result['meta']['unitsCharged'])import { randomUUID } from 'node:crypto';
const requestId = randomUUID();
const apiKey = process.env.NOCALL_API_KEY;
if (!apiKey) throw new Error('Set NOCALL_API_KEY');
const response = await fetch('https://api.nocall.io/v2/link-check', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ url: 'http://192.168.1.1/login', country: 'ES' }),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.code ?? 'request_failed');
console.log(result.data.result, result.meta.unitsCharged);ตัวอย่างการตอบกลับ (200)
นี่คือตัวอย่างที่ระบุไว้ในเอกสารอ้างอิง API การค้นหาใช้หมายเลขสมมติ ส่วนข้อมูลรวมและคำตอบจาก AI แสดงเพียงโครงสร้างของผลลัพธ์ ไม่ใช่ข้อมูลจริง
{
"data": {
"tool": "link-check",
"result": {
"host": "192.168.1.1",
"hostAscii": "192.168.1.1",
"official": false,
"brand": null,
"hosts": [
"192.168.1.1"
],
"linkFlags": [
"http",
"ipAddress"
],
"signals": [
"suspicious_domain"
],
"attention": true
}
},
"meta": {
"requestId": "req_example",
"unitsCharged": 1,
"usage": {
"periodStart": "2026-10-01",
"unitLimit": 20,
"unitsUsed": 3,
"unitsRemaining": 17
}
}
}ฟิลด์ผลลัพธ์ (data.result)
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
| host | string | ชื่อโฮสต์ของ URL ในรูปแบบ Unicode |
| hostAscii | string | ชื่อโฮสต์ของ URL ในรูปแบบ ASCII (punycode) |
| official | boolean | โฮสต์เป็นโดเมนทางการของแบรนด์หรือหน่วยงานรัฐหรือไม่ |
| brand | string | null | โฮสต์เป็นโดเมนทางการของใคร (แบรนด์หรือหน่วยงานรัฐ) หรือ null |
| hosts | array<string> | ชื่อโฮสต์ที่พบในข้อความ |
| linkFlags | array<"http" | "userinfo" | "internationalHost" | "ipAddress" | "nonStandardPort"> | คำเตือนด้านโครงสร้างของลิงก์: http, userinfo, โฮสต์แบบนานาชาติ, ที่อยู่ IP หรือพอร์ตที่ไม่ใช่มาตรฐาน |
| signals | array<string (enum, 10)> | สัญญาณจากกฎที่ตรงกัน |
| attention | boolean | เนื้อหาควรได้รับการตรวจดูอย่างละเอียดหรือไม่ |
