واجهة برمجة تطبيقات العميل FastDDNS

قم تلقائيا بتحديث اسم المضيف الديناميكي DNS كلما تغير عنوان IP الخاص بك.

نظرة عامة

تسمح واجهة برمجة تطبيقات عميل FastDDNS لأي جهاز يدعم HTTP — سواء أجهزة التوجيه، أو كاميرات IP، أو السكريبتات الذهنية، أو برامج تحديث مخصصة — بإبقاء اسم مضيف DNS موجها إلى عنوان IP الحالي الخاص بك. تتبع واجهة برمجة التطبيقات تصميم طلب GET بسيط: يرسل العميل بيانات الاعتماد واسم المضيف، ويرد الخادم برمز حالة قصير يشير إلى النتيجة.

يكتشف الخادم تلقائيا عنوان IP العام للعميل من الاتصال الوارد. لا حاجة لمعايير إضافية لتحديد عنوان IP الخاص بك.

i️ يتم دعم كل من HTTP وHTTPS. يوصى بشدة باستخدام HTTPS لحماية بيانات الاعتماد أثناء النقل.

المصادقة

تدعم واجهة برمجة التطبيقات طريقتين للمصادقة. كلاهما مقبول بالتساوي — اختر أيهما أسهل في التكوين على جهازك أو جهاز التوجيه.

🔑 بيانات اعتماد لكل اسم مضيف: كل اسم مضيف تنشئه على FastDDNS يمنح user_name وuser_pass مخصص له. هذه الشهادات يمكن أن تفعل فقط تحديث ذلك اسم المضيف المحدد ولا يمكن استخدامه لتسجيل الدخول إلى لوحة إدارة FastDDNS. هذا التصميم يحد من التأثير إذا تم اختراق بيانات اعتماد الجهاز يوما ما.

الطريقة 1 — مصادقة HTTP الأساسية (مدمجة في 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.

مثال باستخدام مصادقة سلسلة الاستعلام:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=fastddnstest&user_pass=569832
⚠️ عند استخدام مصادقة سلاسل الاستعلام، أفضل دائما HTTPS حتى لا تنقل بيانات الاعتماد بالنص العادي. HTTP متاحة ولكن يجب استخدامها فقط على الشبكات المحلية الموثوقة أو للاختبار.

تحديث الأداء

أرسل طلب GET واحد لتحديث عنوان IP لاسم مضيف مسجل في حسابك. كل طلب يقوم بتحديث اسم مضيف واحد في كل مرة.

نقطة النهاية

GET https://client.fastddns.net/
يمكن الوصول إليه أيضا عبر HTTP بسيط — استبدل https ب http.

تنسيق URL — الطريقة 1: HTTP Basic Author

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

تنسيق الرابط — الطريقة 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 Authorth (الطريقة 1).
user_pass الطريقة 2 string كلمة المرور لهذا المضيف. مطلوب عند استخدام مصادقة سلاسل الاستعلام (الطريقة 2). غير ضروري عند استخدام HTTP Basic Authorth (الطريقة 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

اسم المضيف غير موجود

اسم المضيف المحدد غير موجود في حسابك أو غير مؤهل للتحديثات الديناميكية. تحقق من تهجئة اسم المضيف وتأكد من أنه مسجل تحت حسابك.

911

خطأ في الخادم

حدث خطأ داخلي على جانب خادم FastDDNS. انتظر على الأقل 5 دقائق قبل إعادة المحاولة. إذا استمرت المشكلة، تحقق من صفحة حالة FastDDNS أو تواصل مع الدعم.

ملخص الردود

نص الرد حالة HTTP المعنى الإجراءات المطلوبة
good {ip} 200 تم تحديث IP بنجاح لا شيء — تم الانتهاء من التحديث
nochg {ip} 200 عنوان IP لم يتغير، ولا يتم تحديث لا شيء — حديث بالفعل
badauth 200 الاعتمادات غير الصالحة تحقق من اسم المستخدم / مفتاح العميل
nohost 200 اسم المضيف غير مسجل تحقق من اسم المضيف في لوحة المعلومات
911 200 خطأ على جانب الخادم إعادة المحاولة بعد 5+ دقائق
⚠️ مهم للأتمتة: دائما حلل نص الإجابة ، وليس فقط رمز حالة HTTP. واجهة برمجة التطبيقات دائما تعود ب 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

<?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

باش (سكريبت كرون / راوتر)

#!/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/البروكسي بدلا من ذلك. استخدم getip endpoint للتحقق من أي عنوان IP يراها الخادم من جهازك.

أتلقى 911

وهذا يشير إلى مشكلة مؤقتة على جانب الخادم. انتظر على الأقل 5 دقائق قبل إعادة المحاولة. لا تعيد الطلبات بسرعة — فقد يؤدي ذلك إلى تقييد المعدل. تحقق من صفحة حالة FastDDNS لأي حوادث نشطة.

كم مرة يجب أن أراجع نقطة نهاية التحديث؟

نوصي بالتحقق من تغييرات IP كل 5 دقائق. عندما لا يتغير عنوان IP الخاص بك، يعيد الخادم nochg، وهو أمر غير متوقع بشكل خفيف. يتم تثبيط إجراء استطلاعات أكثر من مرة في الدقيقة وقد يؤدي ذلك إلى تحديد معدلات التصويت.