विवरण
FastDDNS क्लाइंट API किसी भी HTTP-सक्षम डिवाइस—router, IP कैमरा, स्क्रिप्ट या समर्पित अपडेटर सॉफ़्टवेयर—को आपके DNS hostname को आपके वर्तमान IP पते पर निर्देशित रखने की सुविधा देता है। API एक सरल GET अनुरोध डिज़ाइन का पालन करता है: आपका क्लाइंट क्रेडेंशियल और hostname भेजता है, और सर्वर परिणाम बताने वाले छोटे स्थिति कोड के साथ जवाब देता है।
सर्वर क्लाइंट के सार्वजनिक IP पते का स्वचालित रूप से पता लगाता है। आने वाले कनेक्शन से IP निर्दिष्ट करने के लिए किसी अतिरिक्त पैरामीटर की आवश्यकता नहीं होती।
प्रमाणीकरण
प्रमाणीकरण
user_name और user_pass और । इन क्रेडेंशियल का उपयोग केवल उस विशिष्ट hostname को अपडेट करने के लिए किया जा सकता है और FastDDNS प्रबंधन डैशबोर्ड में लॉग इन करने के लिए इनका उपयोग नहीं किया जा सकता
। यदि कभी किसी डिवाइस के क्रेडेंशियल से समझौता हो जाए, तो यह डिज़ाइन उसके प्रभाव को सीमित करता है।
क्रेडेंशियल्स मानक user:password@host
क्रेडेंशियल मानक अपडेटर क्लाइंट कुंजी का उपयोग करें।
| फ़ील्ड | फ़ील्ड | विवरण |
|---|---|---|
| {user_name} | इसे कहाँ खोजें | निर्माण के समय इस विशिष्ट hostname को असाइन किया गया username। |
| {user_pass} | निर्माण समय पर इस विशिष्ट होस्टनाम को असाइन किया गया पासवर्ड. | निर्माण के समय इस विशिष्ट hostname को असाइन किया गया password। |
| {hostname} | अपडेट करने के लिए पूरी तरह से योग्य होस्टनाम, उदाहरण के लिए। testhost.fastddns.org पर टैप करें. |
. |
विधि 2 - क्वेरी स्ट्रिंग पैरामीटर
क्रेडेंशियल्स को hostname के साथ सादे क्वेरी पैरामीटर के रूप में पास किया जाता है. यह उन उपकरणों और फर्मवेयर के लिए उपयोगी है जो HTTP बेसिक ऑथ हेडर को कॉन्फ़िगर नहीं कर सकते हैं लेकिन पूरी तरह से कस्टम URL स्ट्रिंग की अनुमति देते हैं।
| प्राचल | पैरामीटर | प्रकार |
|---|---|---|
| {user_name} विवरण
|
string | |
| {user_pass} | string | इस होस्टनाम को असाइन किया गया पासवर्ड जब इसे बनाया गया था. |
| {hostname} | string | अद्यतन करने के लिए पूरी तरह से योग्य होस्टनाम, उदाहरण के लिए testhost.fastddns.org. |
.
अपडेट करें
प्रत्येक अनुरोधएक समय में एक होस्टनामअपडेट करता है
।
httpsसादे HTTP के माध्यम से भी उपलब्ध है — http को से बदलें।
URL स्वरूप — विधि 2: क्वेरी स्ट्रिंग
क्वेरी पैरामीटर
| प्राचल | प्रकार | या क़िस्म |
|---|---|---|
| hostname आवश्यक | string | अद्यतन करने के लिए पूरी तरह से क्वालीफ़ाइड होस्टनाम (FQDN), उदाहरण के लिए myhome.fastddns.net या testhost.fastddns.org या |
| user_name । प्रति अनुरोध केवल एक hostname समर्थित है। | string | इस होस्टनाम के लिए उपयोगकर्ता नाम. क्वेरी स्ट्रिंग प्रमाणीकरण (विधि 2) का उपयोग करते समय आवश्यक है। HTTP Basic Auth (विधि 1) का उपयोग करते समय इसकी आवश्यकता नहीं है। |
| user_pass विधि 2 | string | इस होस्टनाम के लिए पासवर्ड. क्वेरी स्ट्रिंग प्रमाणीकरण (विधि 2) का उपयोग करते समय आवश्यक है। HTTP Basic Auth (विधि 1) का उपयोग करते समय इसकी आवश्यकता नहीं है। |
myip पैरामीटर प्रदान करने की आवश्यकता नहीं है.
उदाहरण अनुरोध
विधि 1 - HTTPS पर HTTP बेसिक ऑथ:
विधि 2विधि 2
— HTTPS पर क्वेरी स्ट्रिंग:
सादा HTTP का उपयोग (केवल परीक्षण/विश्वसनीय नेटवर्क के लिए):
वापसी कोड सभी अपडेट प्रतिक्रियाएँ HTTP स्थिति एक सादे पाठ शरीर के साथ। आपके क्लाइंट को अद्यतन के वास्तविक परिणाम को निर्धारित करने के लिए इस पाठ के मुख्य भाग को पार्स करना होगा।
अद्यतन सफल
अपडेट सफलgood 203.0.113.45hostname रिकॉर्ड को पता लगाए गए IP पते पर अपडेट कर दिया गया है। वास्तविक IP प्रतिक्रिया में शामिल है, उदाहरण के लिए
। जब आपका IP बदल गया हो, तो यही अपेक्षित प्रतिक्रिया होती है।
किसी बदलाव की आवश्यकता नहींnochg 203.0.113.45hostname पहले से ही पता लगाए गए IP पते पर इंगित करता है — किसी अपडेट की आवश्यकता नहीं थी। वर्तमान IP शामिल है, उदाहरण के लिए
। यह सामान्य, गैर-त्रुटि प्रतिक्रिया है।
प्रमाणीकरण विफल
होस्टनाम नहीं मिला
निर्दिष्ट होस्टनाम आपके खाते में मौजूद नहीं है या डायनेमिक अपडेट के लिए योग्य नहीं है. होस्टनाम वर्तनी की जांच करें और पुष्टि करें कि यह आपके खाते के तहत पंजीकृत है।
सर्वर त्रुटि
सर्वर त्रुटि
प्रतिक्रिया सारांश
| प्रतिक्रिया सारांश | प्रतिक्रिया टेक्स्ट | अर्थ | अर्थ |
|---|---|---|---|
| good {ip} | आवश्यक कार्रवाई | 200 | IP सफलतापूर्वक अपडेट किया गया |
| nochg {ip} | कोई नहीं — अपडेट पूरा हो गया | 200 | IP अपरिवर्तित, कोई अपडेट नहीं किया गया |
| badauth | कोई नहीं — पहले से अद्यतन है | 200 | अमान्य क्रेडेंशियल्स |
| nohost | उपयोगकर्ता नाम / client key की जाँच करें | 200 | डैशबोर्ड में होस्टनाम सत्यापित करें |
| 911 | डैशबोर्ड में hostname सत्यापित करें | 200 | सर्वर-साइड त्रुटि |
200 को पार्स करें, केवल HTTP स्थिति कोड को नहीं। API हमेशा
लौटाता है — टेक्स्ट बॉडी बताती है कि अपडेट वास्तव में सफल हुआ है या नहीं।
क्लाइंट IP प्राप्त करें
समापन बिंदु
प्रतिक्रिया
HTTP लौटाता है 200 ठीक है प्रतिक्रिया निकाय में सादे पाठ के रूप में पता लगाए गए सार्वजनिक आईपी पते के साथ।
# Example response body
203.0.113.45RESPONSE
उदाहरण अनुरोध
curl का उपयोग करना:
curl https://client.fastddns.net/dyndns/getipSHELL
का उपयोग करके
:
# Recommended: let curl build the Authorization header (-u), so the
# credentials never appear in the URL.
HOSTNAME="myhome.fastddns.org"
USER_NAME="YOUR_UPDATE_USERNAME"
USER_PASS="YOUR_UPDATE_PASSWORD"
curl -s -u "${USER_NAME}:${USER_PASS}" "https://client.fastddns.net/?hostname=${HOSTNAME}"
# Legacy form, for devices that can only be given one URL field:
curl -s "https://client.fastddns.net/?hostname=${HOSTNAME}&user_name=${USER_NAME}&user_pass=${USER_PASS}"
# Check what IP the server sees from your device
curl -s "https://client.fastddns.net/dyndns/getip"SHELL
अजगर
import requests
HOSTNAME = "testhost.fastddns.org"
USER_NAME = "YOUR_UPDATE_USERNAME"
USER_PASS = "YOUR_UPDATE_PASSWORD"
# 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 = 'YOUR_UPDATE_USERNAME';
$user_pass = 'YOUR_UPDATE_PASSWORD';
// Recommended: Basic Auth in a request header, so the password is not
// part of the URL and cannot leak through logs or error messages.
$url = "https://client.fastddns.net/?hostname=" . urlencode($hostname);
$auth = 'Basic ' . base64_encode($user_name . ':' . $user_pass);
// 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,
'header' => "Authorization: {$auth}\r\n",
]]);
$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="YOUR_UPDATE_USERNAME"
USER_PASS="YOUR_UPDATE_PASSWORD"
# Method 1: HTTP Basic Auth
RESULT=$(curl -s -u "${USER_NAME}:${USER_PASS}" "https://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 या होस्टनाम → विवरण
.
ध्यान दें कि ये क्रेडेंशियल्स होस्टनाम के लिए विशिष्ट हैं और में देखें।
ध्यान रखें कि ये क्रेडेंशियल केवल hostname के लिए होते हैं और FastDDNS प्रबंधन पोर्टल में लॉग इन करने के लिए उपयोग नहीं किए जा सकते
मुझे nohostमुझे
hostname पैरामीटर में दिया गया hostname मौजूद नहीं है या दिए गए क्रेडेंशियल से पहचाने गए खाते का नहीं है।
hostname में टाइपो की जाँच करें, पुष्टि करें कि वह आपके डैशबोर्ड में सूचीबद्ध है, और जाँचें कि user_name और user_pass उस वह विशिष्ट होस्टनाम।
सर्वर गलत IP का पता लगा रहा है
सर्वर TCP कनेक्शन के स्रोत IP का उपयोग करता है। यदि आपका डिवाइस NAT router के पीछे है, तो router के सार्वजनिक IP का पता लगाया जाएगा—आमतौर पर यही वांछित व्यवहार होता है। यदि आप VPN या proxy पर हैं, तो सर्वर को इसके बजाय VPN/proxy का exit IP दिखाई देगा। अपने डिवाइस से सर्वर को दिखाई देने वाले IP की जाँच करने के लिए getip endpoint का उपयोग करें।
मुझे 911 प्राप्त होता है
यह सर्वर-साइड की अस्थायी समस्या दर्शाता है। दोबारा प्रयास करने से पहले कम से कम 5 मिनट प्रतीक्षा करें। अनुरोधों को तेज़ी से बार-बार न भेजें—इससे rate limiting सक्रिय हो सकती है। किसी सक्रिय घटना की जानकारी के लिए FastDDNS स्थिति पृष्ठ देखें।
मुझे अपडेट endpoint को कितनी बार पोल करना चाहिए?
हम हर 5 मिनट में IP में बदलाव की जाँच करने की सलाह देते हैं। जब आपका IP नहीं बदला हो, तो सर्वर nochg लौटाता है, जो एक हल्का no-op है। प्रति मिनट एक बार से अधिक पोल करने की सलाह नहीं दी जाती और इससे rate limiting हो सकती है।