API ไคลเอ็นต์ FastDDNS

อัปเดตชื่อโฮสต์ DNS แบบไดนามิกของคุณโดยอัตโนมัติเมื่อใดก็ตามที่ที่อยู่ IP ของคุณเปลี่ยนไป

ภาพรวม

FastDDNS Client API ช่วยให้อุปกรณ์ที่รองรับ HTTP ไม่ว่าจะเป็นเราเตอร์ กล้อง IP สคริปต์ หรือซอฟต์แวร์ตัวอัปเดตเฉพาะ เพื่อให้ชื่อโฮสต์ DNS ของคุณชี้ไปที่ที่อยู่ IP ปัจจุบันของคุณ API เป็นไปตามการออกแบบคําขอ GET อย่างง่าย: ไคลเอ็นต์ของคุณส่งข้อมูลประจําตัวและชื่อโฮสต์ และเซิร์ฟเวอร์จะตอบสนองด้วยรหัสสถานะสั้น ๆ ที่ระบุผลลัพธ์

เซิร์ฟเวอร์จะตรวจจับที่อยู่ IP สาธารณะของไคลเอ็นต์โดยอัตโนมัติจากการเชื่อมต่อขาเข้า ไม่จําเป็นต้องใช้พารามิเตอร์เพิ่มเติมเพื่อระบุ IP ของคุณ

i️ รองรับทั้ง HTTP และ HTTPS ขอแนะนําให้ใช้ HTTPS เพื่อปกป้องข้อมูลประจําตัวของคุณในระหว่างการส่ง

การรับรองความถูกต้อง

API รองรับวิธีการรับรองความถูกต้องสองวิธี ทั้งสองได้รับการยอมรับอย่างเท่าเทียมกัน — เลือกตัวเลือกใดที่ง่ายกว่าในการกําหนดค่าบนอุปกรณ์หรือเราเตอร์ของคุณ

🔑 ข้อมูลเข้าสู่ระบบต่อชื่อโฮสต์: ชื่อโฮสต์แต่ละชื่อที่คุณสร้างบน FastDDNS จะออก user_name และ user_pass เฉพาะของตัวเอง ข้อมูลประจําตัวเหล่านี้สามารถ เท่านั้น อัปเดตชื่อโฮสต์ที่เฉพาะเจาะจงนั้น และไม่สามารถใช้เพื่อเข้าสู่ระบบแดชบอร์ดการจัดการ FastDDNS ได้ การออกแบบนี้จํากัดผลกระทบหากข้อมูลประจําตัวของอุปกรณ์ถูกบุกรุก

วิธีที่ 1 — การตรวจสอบสิทธิ์พื้นฐาน HTTP (ฝัง URL)

ข้อมูลเข้าสู่ระบบถูกฝังอยู่ใน URL โดยใช้รูปแบบ user:password@host มาตรฐาน สิ่งนี้ได้รับการสนับสนุนอย่างกว้างขวางโดยเราเตอร์ กล้อง และไลบรารีไคลเอ็นต์ HTTP ใช้คีย์ไคลเอ็นต์ตัวอัปเดตจากแดชบอร์ดของคุณเป็นรหัสผ่าน

https://{user_name}:{user_pass}@client.fastddns.net/?hostname={hostname}


ฟิลด์ คําอธิบาย หาได้ที่ไหน
{user_name} ชื่อผู้ใช้ที่กําหนดให้กับชื่อโฮสต์ที่เฉพาะเจาะจงนี้ในเวลาที่สร้าง แดชบอร์ด FastDDNS → ชื่อโฮสต์ → รายละเอียด
{user_pass} รหัสผ่านที่กําหนดให้กับชื่อโฮสต์เฉพาะนี้ในเวลาที่สร้าง แดชบอร์ด FastDDNS → ชื่อโฮสต์ → รายละเอียด
{hostname} ชื่อโฮสต์ที่มีคุณสมบัติครบถ้วนเพื่ออัปเดต เช่น testhost.fastddns.org แดชบอร์ด FastDDNS → ชื่อโฮสต์ → รายละเอียด

วิธีที่ 2 — พารามิเตอร์สตริงแบบสอบถาม

ข้อมูลประจําตัวจะถูกส่งผ่านเป็นพารามิเตอร์คิวรีธรรมดาควบคู่ไปกับ hostname สิ่งนี้มีประโยชน์สําหรับอุปกรณ์และเฟิร์มแวร์ที่ไม่สามารถกําหนดค่าส่วนหัว HTTP Basic Auth ได้ แต่อนุญาตให้ใช้สตริง URL ที่กําหนดเองอย่างสมบูรณ์

https://client.fastddns.net/?hostname={hostname}&user_name={user_name}&user_pass={user_pass}
พารามิเตอร์ ชนิดภาพเขียน คําอธิบาย
{user_name}
 

string ชื่อผู้ใช้ที่กําหนดให้กับชื่อโฮสต์นี้เมื่อสร้างขึ้น
{user_pass} string รหัสผ่านที่กําหนดให้กับชื่อโฮสต์นี้เมื่อสร้างขึ้น
{hostname} string ชื่อโฮสต์ที่มีคุณสมบัติครบถ้วนเพื่ออัปเดต เช่น testhost.fastddns.org

ตัวอย่างการใช้การตรวจสอบสิทธิ์สตริงการสืบค้น:

{_NT58_4}
⚠️ เมื่อใช้การตรวจสอบสิทธิ์สตริงคิวรี ให้เลือก HTTPS เสมอ เพื่อไม่ให้ข้อมูลเข้าสู่ระบบถูกส่งเป็นข้อความธรรมดา HTTP พร้อมใช้งาน แต่ควรใช้บนเครือข่ายท้องถิ่นที่เชื่อถือได้หรือสําหรับการทดสอบเท่านั้น

ดําเนินการอัปเดต

ส่งคําขอ GET รายการเดียวเพื่ออัปเดตที่อยู่ IP ของชื่อโฮสต์ที่ลงทะเบียนกับบัญชีของคุณ คําขอแต่ละรายการจะอัปเดตชื่อโฮสต์ทีละชื่อ

ปลายทาง

GET https://client.fastddns.net/
สามารถเข้าถึงได้ผ่าน HTTP ธรรมดา — แทนที่ https ด้วย http

รูปแบบ URL — วิธีที่ 1: การตรวจสอบสิทธิ์พื้นฐานของ HTTP

https://{user_name}:{user_pass}@client.fastddns.net/?hostname={hostname}

รูปแบบ URL — วิธีที่ 2: สตริงการสืบค้น

https://client.fastddns.net/?hostname={hostname}&user_name={user_name}&user_pass={user_pass}

พารามิเตอร์คิวรี

พารามิเตอร์ ชนิดภาพเขียน คําอธิบาย
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)
การตรวจจับ IP อัตโนมัติ: เซิร์ฟเวอร์ใช้ IP ต้นทางของการเชื่อมต่อ TCP ขาเข้าเพื่อกําหนดที่อยู่ IP สาธารณะของคุณ คุณไม่จําเป็นต้องระบุพารามิเตอร์ myip

ตัวอย่างคําขอ

วิธีที่ 1 - การตรวจสอบสิทธิ์พื้นฐาน HTTP ผ่าน HTTPS:

https://fastddnstest:569832@client.fastddns.net/?hostname=testhost.fastddns.org

วิธีที่ 2 - สตริงการสืบค้นผ่าน HTTPS:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=fastddnstest&user_pass=569832

การใช้ HTTP ธรรมดา (เครือข่ายทดสอบ / เชื่อถือได้เท่านั้น):

http://fastddnstest:569832@client.fastddns.net/?hostname=testhost.fastddns.org

รหัสคืนสินค้า

การตอบกลับการอัปเดตทั้งหมดจะแสดงสถานะ HTTP 200 ตกลง ด้วยเนื้อหาข้อความธรรมดา ไคลเอ็นต์ของคุณต้องแยกวิเคราะห์เนื้อหาข้อความนี้เพื่อกําหนดผลลัพธ์ที่แท้จริงของการปรับปรุง

good {ip}

อัพเดทสําเร็จ

ระเบียนชื่อโฮสต์ได้รับการอัปเดตเป็นที่อยู่ IP ที่ตรวจพบ IP จริงรวมอยู่ในการตอบกลับ เช่น good 203.0.113.45 นี่คือการตอบสนองที่คาดหวังเมื่อ IP ของคุณมีการเปลี่ยนแปลง

nochg {ip}

ไม่ต้องเปลี่ยนแปลง

ชื่อโฮสต์ชี้ไปที่ที่อยู่ IP ที่ตรวจพบอยู่แล้ว — ไม่จําเป็นต้องอัปเดต รวม IP ปัจจุบัน เช่น nochg 203.0.113.45 นี่เป็นการตอบสนองปกติที่ไม่ใช่ข้อผิดพลาด

badauth

การรับรองความถูกต้องล้มเหลว

ชื่อผู้ใช้หรือคีย์ไคลเอ็นต์ตัวอัปเดตไม่ถูกต้องหรือถูกเพิกถอน ตรวจสอบข้อมูลประจําตัวของคุณในแดชบอร์ด FastDDNS อย่าลองใหม่โดยอัตโนมัติ — แก้ไขข้อมูลประจําตัวก่อน

nohost

ไม่พบชื่อโฮสต์

ชื่อโฮสต์ที่ระบุไม่มีอยู่ในบัญชีของคุณหรือไม่มีสิทธิ์ได้รับการอัปเดตแบบไดนามิก ตรวจสอบการสะกดชื่อโฮสต์และยืนยันว่าได้ลงทะเบียนภายใต้บัญชีของคุณแล้ว

{_NT34_5}

ข้อผิดพลาดของเซิร์ฟเวอร์

เกิดข้อผิดพลาดภายในที่ฝั่งเซิร์ฟเวอร์ FastDDNS รออย่างน้อย 5 นาทีก่อนลองอีกครั้ง หากปัญหายังคงอยู่ ให้ตรวจสอบหน้าสถานะ FastDDNS หรือติดต่อฝ่ายสนับสนุน

สรุปการตอบสนอง

ข้อความตอบกลับ สถานะ HTTP ความหมาย การดําเนินการที่จําเป็น
{ฯ_NT33_} 200 อัปเดต IP สําเร็จ ไม่มี — การอัปเดตเสร็จสมบูรณ์
nochg {ip} 200 IP ไม่เปลี่ยนแปลง ไม่มีการอัปเดต ไม่มี — ปัจจุบันอยู่แล้ว
badauth 200 ข้อมูลประจําตัวไม่ถูกต้อง ตรวจสอบชื่อผู้ใช้ / คีย์ไคลเอ็นต์
nohost 200 ไม่ได้ลงทะเบียนชื่อโฮสต์ ยืนยันชื่อโฮสต์ในแดชบอร์ด
911 200 ข้อผิดพลาดฝั่งเซิร์ฟเวอร์ ลองอีกครั้งหลังจาก 5+ นาที
⚠️ สิ่งสําคัญสําหรับระบบอัตโนมัติ: แยกวิเคราะห์ ข้อความเนื้อหาการตอบกลับ ไม่ใช่แค่รหัสสถานะ HTTP เท่านั้น API จะส่งคืน 200 เสมอ — เนื้อหาข้อความจะบอกคุณว่าการอัปเดตสําเร็จจริงหรือไม่

รับ IP ไคลเอ็นต์

FastDDNS มีจุดสิ้นสุดยูทิลิตี้อย่างง่ายที่ส่งคืนที่อยู่ IP สาธารณะตามที่เซิร์ฟเวอร์เห็น วิธีนี้มีประโยชน์สําหรับการดีบัก เพื่อตรวจสอบว่าอุปกรณ์ของคุณส่งมาจาก IP ใด หรือสําหรับใช้ในสคริปต์แบบกําหนดเองก่อนที่จะเรียกใช้ปลายทางการอัปเดต

ปลายทาง

GET https://client.fastddns.net/dyndns/getip
ไม่จําเป็นต้องมีการรับรองความถูกต้อง สามารถเข้าถึงได้ผ่าน HTTP ธรรมดา

การตอบสนอง

ส่งกลับ HTTP 200 ตกลง ด้วยที่อยู่ IP สาธารณะที่ตรวจพบเป็นข้อความธรรมดาในเนื้อหาการตอบกลับ

# Example response body
203.0.113.45RESPONSE

ตัวอย่างคําขอ

https://client.fastddns.net/dyndns/getip
http://client.fastddns.net/dyndns/getip

การใช้ 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 ที่มีน้ําหนักเบา ไม่แนะนําให้ทําโพลบ่อยกว่าหนึ่งครั้งต่อนาทีและอาจส่งผลให้มีการจํากัดอัตรา