ภาพรวม
FastDDNS Client API ช่วยให้อุปกรณ์ที่รองรับ HTTP ไม่ว่าจะเป็นเราเตอร์ กล้อง IP สคริปต์ หรือซอฟต์แวร์ตัวอัปเดตเฉพาะ เพื่อให้ชื่อโฮสต์ DNS ของคุณชี้ไปที่ที่อยู่ IP ปัจจุบันของคุณ API เป็นไปตามการออกแบบคําขอ GET อย่างง่าย: ไคลเอ็นต์ของคุณส่งข้อมูลประจําตัวและชื่อโฮสต์ และเซิร์ฟเวอร์จะตอบสนองด้วยรหัสสถานะสั้น ๆ ที่ระบุผลลัพธ์
เซิร์ฟเวอร์จะตรวจจับที่อยู่ IP สาธารณะของไคลเอ็นต์โดยอัตโนมัติจากการเชื่อมต่อขาเข้า ไม่จําเป็นต้องใช้พารามิเตอร์เพิ่มเติมเพื่อระบุ IP ของคุณ
การรับรองความถูกต้อง
API รองรับวิธีการรับรองความถูกต้องสองวิธี ทั้งสองได้รับการยอมรับอย่างเท่าเทียมกัน — เลือกตัวเลือกใดที่ง่ายกว่าในการกําหนดค่าบนอุปกรณ์หรือเราเตอร์ของคุณ
user_name และ user_pass เฉพาะของตัวเอง ข้อมูลประจําตัวเหล่านี้สามารถ เท่านั้น
อัปเดตชื่อโฮสต์ที่เฉพาะเจาะจงนั้น และไม่สามารถใช้เพื่อเข้าสู่ระบบแดชบอร์ดการจัดการ FastDDNS ได้ การออกแบบนี้จํากัดผลกระทบหากข้อมูลประจําตัวของอุปกรณ์ถูกบุกรุก
วิธีที่ 1 — การตรวจสอบสิทธิ์พื้นฐาน HTTP (ฝัง URL)
ข้อมูลเข้าสู่ระบบถูกฝังอยู่ใน URL โดยใช้รูปแบบ user:password@host มาตรฐาน สิ่งนี้ได้รับการสนับสนุนอย่างกว้างขวางโดยเราเตอร์ กล้อง และไลบรารีไคลเอ็นต์ HTTP ใช้คีย์ไคลเอ็นต์ตัวอัปเดตจากแดชบอร์ดของคุณเป็นรหัสผ่าน
| ฟิลด์ | คําอธิบาย | หาได้ที่ไหน |
|---|---|---|
| {user_name} | ชื่อผู้ใช้ที่กําหนดให้กับชื่อโฮสต์ที่เฉพาะเจาะจงนี้ในเวลาที่สร้าง | แดชบอร์ด FastDDNS → ชื่อโฮสต์ → รายละเอียด |
| {user_pass} | รหัสผ่านที่กําหนดให้กับชื่อโฮสต์เฉพาะนี้ในเวลาที่สร้าง | แดชบอร์ด FastDDNS → ชื่อโฮสต์ → รายละเอียด |
| {hostname} | ชื่อโฮสต์ที่มีคุณสมบัติครบถ้วนเพื่ออัปเดต เช่น testhost.fastddns.org |
แดชบอร์ด FastDDNS → ชื่อโฮสต์ → รายละเอียด |
วิธีที่ 2 — พารามิเตอร์สตริงแบบสอบถาม
ข้อมูลประจําตัวจะถูกส่งผ่านเป็นพารามิเตอร์คิวรีธรรมดาควบคู่ไปกับ hostname สิ่งนี้มีประโยชน์สําหรับอุปกรณ์และเฟิร์มแวร์ที่ไม่สามารถกําหนดค่าส่วนหัว HTTP Basic Auth ได้ แต่อนุญาตให้ใช้สตริง URL ที่กําหนดเองอย่างสมบูรณ์
| พารามิเตอร์ | ชนิดภาพเขียน | คําอธิบาย |
|---|---|---|
| {user_name} |
string | ชื่อผู้ใช้ที่กําหนดให้กับชื่อโฮสต์นี้เมื่อสร้างขึ้น |
| {user_pass} | string | รหัสผ่านที่กําหนดให้กับชื่อโฮสต์นี้เมื่อสร้างขึ้น |
| {hostname} | string | ชื่อโฮสต์ที่มีคุณสมบัติครบถ้วนเพื่ออัปเดต เช่น testhost.fastddns.org |
ตัวอย่างการใช้การตรวจสอบสิทธิ์สตริงการสืบค้น:
ดําเนินการอัปเดต
ส่งคําขอ GET รายการเดียวเพื่ออัปเดตที่อยู่ IP ของชื่อโฮสต์ที่ลงทะเบียนกับบัญชีของคุณ คําขอแต่ละรายการจะอัปเดตชื่อโฮสต์ทีละชื่อ
ปลายทาง
https ด้วย httpรูปแบบ URL — วิธีที่ 1: การตรวจสอบสิทธิ์พื้นฐานของ HTTP
รูปแบบ URL — วิธีที่ 2: สตริงการสืบค้น
พารามิเตอร์คิวรี
| พารามิเตอร์ | ชนิดภาพเขียน | คําอธิบาย |
|---|---|---|
| hostname ต้องระบุ | string | ชื่อโฮสต์ที่มีคุณสมบัติครบถ้วน (FQDN) ที่จะอัปเดต เช่น myhome.fastddns.net หรือ testhost.fastddns.org รองรับชื่อโฮสต์เพียงชื่อเดียวต่อคําขอ |
| user_name วิธีที่ 2 | string | ชื่อผู้ใช้สําหรับชื่อโฮสต์นี้ จําเป็นเมื่อใช้การรับรองความถูกต้องของสตริงคิวรี (วิธีที่ 2) ไม่จําเป็นเมื่อใช้ HTTP Basic Auth (วิธีที่ 1) |
| user_pass วิธีที่ 2 | string | รหัสผ่านสําหรับชื่อโฮสต์นี้ จําเป็นเมื่อใช้การรับรองความถูกต้องของสตริงคิวรี (วิธีที่ 2) ไม่จําเป็นเมื่อใช้ HTTP Basic Auth (วิธีที่ 1) |
myip
ตัวอย่างคําขอ
วิธีที่ 1 - การตรวจสอบสิทธิ์พื้นฐาน HTTP ผ่าน HTTPS:
วิธีที่ 2 - สตริงการสืบค้นผ่าน HTTPS:
การใช้ HTTP ธรรมดา (เครือข่ายทดสอบ / เชื่อถือได้เท่านั้น):
รหัสคืนสินค้า
การตอบกลับการอัปเดตทั้งหมดจะแสดงสถานะ HTTP 200 ตกลง ด้วยเนื้อหาข้อความธรรมดา ไคลเอ็นต์ของคุณต้องแยกวิเคราะห์เนื้อหาข้อความนี้เพื่อกําหนดผลลัพธ์ที่แท้จริงของการปรับปรุง
อัพเดทสําเร็จ
ระเบียนชื่อโฮสต์ได้รับการอัปเดตเป็นที่อยู่ IP ที่ตรวจพบ IP จริงรวมอยู่ในการตอบกลับ เช่น good 203.0.113.45 นี่คือการตอบสนองที่คาดหวังเมื่อ IP ของคุณมีการเปลี่ยนแปลง
ไม่ต้องเปลี่ยนแปลง
ชื่อโฮสต์ชี้ไปที่ที่อยู่ IP ที่ตรวจพบอยู่แล้ว — ไม่จําเป็นต้องอัปเดต รวม IP ปัจจุบัน เช่น nochg 203.0.113.45 นี่เป็นการตอบสนองปกติที่ไม่ใช่ข้อผิดพลาด
การรับรองความถูกต้องล้มเหลว
ชื่อผู้ใช้หรือคีย์ไคลเอ็นต์ตัวอัปเดตไม่ถูกต้องหรือถูกเพิกถอน ตรวจสอบข้อมูลประจําตัวของคุณในแดชบอร์ด FastDDNS อย่าลองใหม่โดยอัตโนมัติ — แก้ไขข้อมูลประจําตัวก่อน
ไม่พบชื่อโฮสต์
ชื่อโฮสต์ที่ระบุไม่มีอยู่ในบัญชีของคุณหรือไม่มีสิทธิ์ได้รับการอัปเดตแบบไดนามิก ตรวจสอบการสะกดชื่อโฮสต์และยืนยันว่าได้ลงทะเบียนภายใต้บัญชีของคุณแล้ว
ข้อผิดพลาดของเซิร์ฟเวอร์
เกิดข้อผิดพลาดภายในที่ฝั่งเซิร์ฟเวอร์ FastDDNS รออย่างน้อย 5 นาทีก่อนลองอีกครั้ง หากปัญหายังคงอยู่ ให้ตรวจสอบหน้าสถานะ FastDDNS หรือติดต่อฝ่ายสนับสนุน
สรุปการตอบสนอง
| ข้อความตอบกลับ | สถานะ HTTP | ความหมาย | การดําเนินการที่จําเป็น |
|---|---|---|---|
| {ฯ_NT33_} | 200 | อัปเดต IP สําเร็จ | ไม่มี — การอัปเดตเสร็จสมบูรณ์ |
| nochg {ip} | 200 | IP ไม่เปลี่ยนแปลง ไม่มีการอัปเดต | ไม่มี — ปัจจุบันอยู่แล้ว |
| badauth | 200 | ข้อมูลประจําตัวไม่ถูกต้อง | ตรวจสอบชื่อผู้ใช้ / คีย์ไคลเอ็นต์ |
| nohost | 200 | ไม่ได้ลงทะเบียนชื่อโฮสต์ | ยืนยันชื่อโฮสต์ในแดชบอร์ด |
| 911 | 200 | ข้อผิดพลาดฝั่งเซิร์ฟเวอร์ | ลองอีกครั้งหลังจาก 5+ นาที |
200 เสมอ — เนื้อหาข้อความจะบอกคุณว่าการอัปเดตสําเร็จจริงหรือไม่
รับ IP ไคลเอ็นต์
FastDDNS มีจุดสิ้นสุดยูทิลิตี้อย่างง่ายที่ส่งคืนที่อยู่ IP สาธารณะตามที่เซิร์ฟเวอร์เห็น วิธีนี้มีประโยชน์สําหรับการดีบัก เพื่อตรวจสอบว่าอุปกรณ์ของคุณส่งมาจาก IP ใด หรือสําหรับใช้ในสคริปต์แบบกําหนดเองก่อนที่จะเรียกใช้ปลายทางการอัปเดต
ปลายทาง
การตอบสนอง
ส่งกลับ HTTP 200 ตกลง ด้วยที่อยู่ IP สาธารณะที่ตรวจพบเป็นข้อความธรรมดาในเนื้อหาการตอบกลับ
# Example response body
203.0.113.45RESPONSE
ตัวอย่างคําขอ
การใช้ curl:
curl https://client.fastddns.net/dyndns/getipSHELL
ตัวอย่างโค้ด
เชลล์ / cURL
# Method 1: HTTP Basic Auth (HTTPS, IP auto-detected)
curl "https://fastddnstest:[email protected]/?hostname=testhost.fastddns.org"
# Method 2: Query string credentials
curl "https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=fastddnstest&user_pass=569832"
# Check what IP the server sees from your device
curl "https://client.fastddns.net/dyndns/getip"SHELL
หลาม
import requests
HOSTNAME = "testhost.fastddns.org"
USER_NAME = "fastddnstest"
USER_PASS = "569832"
# Method 1: HTTP Basic Auth
resp = requests.get(
"https://client.fastddns.net/",
auth=(USER_NAME, USER_PASS),
params={"hostname": HOSTNAME}
)
# Method 2: Query string
# resp = requests.get("https://client.fastddns.net/", params={
# "hostname": HOSTNAME, "user_name": USER_NAME, "user_pass": USER_PASS
# })
body = resp.text.strip()
if body.startswith("good"):
print(f"Updated successfully: {body}")
elif body.startswith("nochg"):
print(f"No change needed: {body}")
elif body == "badauth":
print("Authentication failed. Check credentials.")
elif body == "nohost":
print("Hostname not found.")
elif body == "911":
print("Server error. Try again later.")PYTHON
พีเอชพี
<?php
$hostname = 'testhost.fastddns.org';
$user_name = 'fastddnstest';
$user_pass = '569832';
// Method 1: HTTP Basic Auth embedded in URL
$url = "https://{$user_name}:{$user_pass}@client.fastddns.net/?hostname=" . urlencode($hostname);
// Method 2: Query string credentials
// $url = "https://client.fastddns.net/?hostname=" . urlencode($hostname)
// . "&user_name=" . urlencode($user_name)
// . "&user_pass=" . urlencode($user_pass);
$ctx = stream_context_create(['http' => ['timeout' => 10]]);
$body = trim(file_get_contents($url, false, $ctx));
switch (true) {
case str_starts_with($body, 'good'):
echo "Updated: {$body}\n"; break;
case str_starts_with($body, 'nochg'):
echo "No change: {$body}\n"; break;
case $body === 'badauth':
echo "Auth failed. Check hostname credentials.\n"; break;
case $body === 'nohost':
echo "Hostname not found.\n"; break;
case $body === '911':
echo "Server error, retry later.\n"; break;
}PHP
ทุบตี (Cron / Router Script)
#!/bin/bash
HOSTNAME="testhost.fastddns.org"
USER_NAME="fastddnstest"
USER_PASS="569832"
# Method 1: HTTP Basic Auth
RESULT=$(curl -s "https://${USER_NAME}:${USER_PASS}@client.fastddns.net/?hostname=${HOSTNAME}")
# Method 2: Query string (uncomment to use instead)
# RESULT=$(curl -s "https://client.fastddns.net/?hostname=${HOSTNAME}&user_name=${USER_NAME}&user_pass=${USER_PASS}")
case "$RESULT" in
good*) echo "[OK] $RESULT" ;;
nochg*) echo "[OK] $RESULT" ;;
badauth) echo "[ERR] Bad credentials — check hostname user/pass"; exit 1 ;;
nohost) echo "[ERR] Hostname not found"; exit 1 ;;
911) echo "[ERR] Server error, retry later"; exit 1 ;;
*) echo "[WARN] Unknown response: $RESULT" ;;
esacBASH
การแก้ปัญหา
ฉันได้รับ badauth
user_name หรือ user_pass ที่ระบุไม่ตรงกับข้อมูลประจําตัวที่กําหนดให้กับชื่อโฮสต์นั้น
ชื่อโฮสต์แต่ละชื่อมีข้อมูลประจําตัวที่เป็นอิสระของตัวเอง — ค้นหาได้ในแดชบอร์ดของคุณภายใต้ ชื่อโฮสต์→รายละเอียด
.
โปรดทราบว่าข้อมูลประจําตัวเหล่านี้เป็นข้อมูลเฉพาะสําหรับชื่อโฮสต์ และไม่สามารถใช้เพื่อเข้าสู่ระบบพอร์ทัลการจัดการ FastDDNS
หากเพิ่งรีเซ็ตข้อมูลเข้าสู่ระบบ ให้อัปเดตอุปกรณ์ทั้งหมดโดยใช้ชื่อโฮสต์นั้น
ฉันได้รับ nohost
ชื่อโฮสต์ในพารามิเตอร์ hostname ไม่มีอยู่จริง หรือไม่ได้เป็นของบัญชีที่ระบุโดยข้อมูลประจําตัวที่ให้มา
ตรวจสอบการพิมพ์ผิดในชื่อโฮสต์ ยืนยันว่ามีรายการอยู่ในแดชบอร์ด และตรวจสอบว่า user_name และ user_pass ตรงกัน ชื่อโฮสต์ที่เฉพาะเจาะจงนั้น
.
เซิร์ฟเวอร์ตรวจพบ IP ที่ไม่ถูกต้อง
เซิร์ฟเวอร์ใช้ IP ต้นทางของการเชื่อมต่อ TCP หากอุปกรณ์ของคุณอยู่หลังเราเตอร์ NAT IP สาธารณะของเราเตอร์จะถูกตรวจพบ ซึ่งโดยปกติจะเป็นพฤติกรรมที่ต้องการ หากคุณใช้ VPN หรือพร็อกซี เซิร์ฟเวอร์จะเห็น IP ทางออกของ VPN/proxy แทน ใช้ getip endpoint เพื่อยืนยันว่า IP ใดที่เซิร์ฟเวอร์เห็นจากอุปกรณ์ของคุณ
ฉันได้รับ 911
สิ่งนี้บ่งชี้ว่ามีปัญหาฝั่งเซิร์ฟเวอร์ชั่วคราว รออย่างน้อย 5 นาทีก่อนลองอีกครั้ง อย่าวนซ้ําคําขออย่างรวดเร็ว เพราะอาจทําให้เกิดการจํากัดอัตรา ตรวจสอบหน้าสถานะ FastDDNS สําหรับเหตุการณ์ที่ใช้งานอยู่
ฉันควรสํารวจตําแหน่งข้อมูลการอัปเดตบ่อยแค่ไหน
เราแนะนําให้ตรวจสอบการเปลี่ยนแปลง IP ทุกๆ 5 นาที เมื่อ IP ของคุณไม่มีการเปลี่ยนแปลง เซิร์ฟเวอร์จะส่งคืน nochg ซึ่งเป็น no-op ที่มีน้ําหนักเบา ไม่แนะนําให้ทําโพลบ่อยกว่าหนึ่งครั้งต่อนาทีและอาจส่งผลให้มีการจํากัดอัตรา