API Klien FastDDNS

Perbarui nama host DNS dinamis Anda secara otomatis setiap kali alamat IP Anda berubah.

Ikhtisar

FastDDNS Client API memungkinkan perangkat berkemampuan HTTP apa pun — router, kamera IP, skrip, atau perangkat lunak pembaruan khusus — untuk menjaga nama host DNS Anda tetap mengarah ke alamat IP Anda saat ini. API mengikuti desain permintaan GET sederhana: klien Anda mengirim kredensial dan nama host, dan server merespons dengan kode status pendek yang menunjukkan hasilnya.

Server secara otomatis mendeteksi alamat IP publik klien dari koneksi masuk. Tidak diperlukan parameter tambahan untuk menentukan IP Anda.

i️ HTTP dan HTTPS didukung. HTTPS sangat disarankan untuk melindungi kredensial Anda saat transit.

Otentikasi

API mendukung dua metode autentikasi. Keduanya diterima sama — pilih mana yang lebih mudah dikonfigurasi di perangkat atau router Anda.

🔑 Kredensial per nama host: Setiap nama host yang Anda buat di FastDDNS diberikan user_name dan user_pass khususnya sendiri. Kredensial ini dapat hanya perbarui nama host tertentu dan tidak dapat digunakan untuk masuk ke dasbor manajemen FastDDNS. Desain ini membatasi dampak jika kredensial perangkat pernah disusupi.

Metode 1 — Autentikasi Dasar HTTP (disematkan URL)

Kredensial disematkan dalam URL menggunakan format standar user:password@host. Ini didukung secara luas oleh router, kamera, dan pustaka klien HTTP. Gunakan Kunci Klien Updater dari dasbor Anda sebagai kata sandi.

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


Bidang Deskripsi Di mana menemukannya
{user_name} Nama pengguna yang ditetapkan ke nama host tertentu ini pada waktu pembuatan. Dasbor FastDDNS → Nama Host → Detail
{user_pass} Kata sandi yang ditetapkan ke nama host tertentu ini pada waktu pembuatan. Dasbor FastDDNS → Nama Host → Detail
{hostname} Nama host yang sepenuhnya memenuhi syarat untuk diperbarui, misalnya testhost.fastddns.org. Dasbor FastDDNS → Nama Host → Detail

Metode 2 — Parameter String Kueri

Kredensial diteruskan sebagai parameter kueri biasa bersama hostname. Ini berguna untuk perangkat dan firmware yang tidak dapat mengonfigurasi header HTTP Basic Auth tetapi mengizinkan string URL yang sepenuhnya disesuaikan.

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

string Nama pengguna yang ditetapkan ke nama host ini saat dibuat.
{user_pass} string Kata sandi yang ditetapkan ke nama host ini saat dibuat.
{hostname} string Nama host yang memenuhi syarat untuk diperbarui, misalnya testhost.fastddns.org.

Contoh menggunakan autentikasi string kueri:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=fastddnstest&user_pass=569832
⚠️ Saat menggunakan autentikasi string kueri, selalu pilih HTTPS sehingga kredensial tidak ditransmisikan dalam teks biasa. HTTP tersedia tetapi hanya boleh digunakan di jaringan lokal tepercaya atau untuk pengujian.

Lakukan Pembaruan

Kirim satu permintaan GET untuk memperbarui alamat IP nama host yang terdaftar di akun Anda. Setiap permintaan memperbarui satu nama host pada satu waktu.

Titik akhir

GET https://client.fastddns.net/
Juga dapat diakses melalui HTTP biasa — ganti https dengan http.

Format URL — Metode 1: Autentikasi Dasar HTTP

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

Format URL — Metode 2: String Kueri

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

Parameter Kueri

Parameter Tipe Deskripsi
hostname Diperlukan string Nama host yang memenuhi syarat sepenuhnya (FQDN) untuk diperbarui, misalnya myhome.fastddns.net atau testhost.fastddns.org. Hanya satu nama host per permintaan yang didukung.
user_name Metode 2 string Nama pengguna untuk nama host ini. Diperlukan saat menggunakan autentikasi string kueri (Metode 2). Tidak diperlukan saat menggunakan HTTP Basic Auth (Metode 1).
user_pass Metode 2 string Kata sandi untuk nama host ini. Diperlukan saat menggunakan autentikasi string kueri (Metode 2). Tidak diperlukan saat menggunakan HTTP Basic Auth (Metode 1).
Deteksi otomatis IP: Server menggunakan IP sumber koneksi TCP yang masuk untuk menentukan alamat IP publik Anda. Anda tidak perlu menyediakan parameter myip.

Contoh Permintaan

Metode 1 — Autentikasi Dasar HTTP melalui HTTPS:

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

Metode 2 — String kueri melalui HTTPS:

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

Menggunakan HTTP biasa (hanya pengujian / jaringan tepercaya):

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

Kode Pengembalian

Semua respons pembaruan mengembalikan status HTTP 200 OK dengan isi teks biasa. Klien Anda harus mengurai isi teks ini untuk menentukan hasil pembaruan yang sebenarnya.

good {ip}

Pembaruan Berhasil

Catatan nama host telah diperbarui ke alamat IP yang terdeteksi. IP aktual disertakan dalam respons, misalnya good 203.0.113.45. Ini adalah respons yang diharapkan ketika IP Anda telah berubah.

nochg {ip}

Tidak Perlu Perubahan

Nama host sudah menunjuk ke alamat IP yang terdeteksi — tidak ada pembaruan yang diperlukan. IP saat ini disertakan, misalnya nochg 203.0.113.45. Ini adalah respons normal tanpa kesalahan.

badauth

Otentikasi Gagal

Nama pengguna atau kunci klien pembaharuan salah atau telah dicabut. Verifikasi kredensial Anda di dasbor FastDDNS. Jangan coba lagi secara otomatis — perbaiki kredensial terlebih dahulu.

nohost

Nama Host Tidak Ditemukan

Nama host yang ditentukan tidak ada di akun Anda atau tidak memenuhi syarat untuk pembaruan dinamis. Periksa ejaan nama host dan konfirmasikan bahwa itu terdaftar di akun Anda.

911

Kesalahan Server

Kesalahan internal terjadi di sisi server FastDDNS. Tunggu setidaknya 5 menit sebelum mencoba lagi. Jika masalah berlanjut, periksa halaman status FastDDNS atau hubungi dukungan.

Ringkasan Tanggapan

Teks Tanggapan HTTP Status Arti Tindakan yang Diperlukan
good {ip} 200 IP berhasil diperbarui Tidak ada — pembaruan selesai
nochg {ip} 200 IP tidak berubah, tidak ada pembaruan yang dilakukan Tidak ada — sudah terkini
badauth 200 Kredensial tidak valid Periksa nama pengguna / kunci klien
nohost 200 Nama host tidak terdaftar Memverifikasi nama host di dasbor
911 200 Kesalahan sisi server Coba lagi setelah 5+ menit
⚠️ Penting untuk otomatisasi: Selalu mengurai teks isi respons , bukan hanya kode status HTTP. API selalu mengembalikan 200 — isi teks memberi tahu Anda apakah pembaruan benar-benar berhasil.

Dapatkan IP Klien

FastDDNS menyediakan titik akhir utilitas sederhana yang mengembalikan alamat IP publik seperti yang dilihat oleh server. Ini berguna untuk penelusuran kesalahan, untuk memverifikasi IP mana yang dikirim perangkat Anda, atau untuk digunakan dalam skrip kustom sebelum memanggil titik akhir pembaruan.

Titik akhir

GET https://client.fastddns.net/dyndns/getip
Tidak diperlukan otentikasi. Juga dapat diakses melalui HTTP biasa.

tanggapan

Mengembalikan HTTP 200 OK dengan alamat IP publik yang terdeteksi sebagai teks biasa di isi respons.

# Example response body
203.0.113.45RESPONSE

Contoh Permintaan

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

Menggunakan curl:

curl https://client.fastddns.net/dyndns/getipSHELL

Contoh Kode

Shell / 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

Python

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

Bash (Cron / Skrip Router)

#!/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

Penyelesaian masalah

Saya menerima badauth

user_name atau user_pass yang disediakan tidak cocok dengan kredensial yang ditetapkan ke nama host tersebut. Setiap nama host memiliki kredensial independennya sendiri — temukan di dasbor Anda di bawah Nama host → Detail . Perhatikan bahwa kredensial ini khusus untuk nama host dan tidak dapat digunakan untuk masuk ke portal manajemen FastDDNS. Jika Anda baru saja mengatur ulang kredensial, perbarui semua perangkat menggunakan nama host tersebut.

Saya menerima nohost

Nama host dalam parameter hostname tidak ada atau bukan milik akun yang diidentifikasi oleh kredensial yang disediakan. Periksa kesalahan ketik di nama host, konfirmasikan bahwa nama tersebut tercantum di dasbor Anda, dan verifikasi bahwa user_name dan user_pass cocok nama host tertentu .

Server mendeteksi IP yang salah

Server menggunakan IP sumber koneksi TCP. Jika perangkat Anda berada di belakang router NAT, IP publik router akan terdeteksi — yang biasanya merupakan perilaku yang diinginkan. Jika Anda menggunakan VPN atau proxy, server akan melihat IP keluar VPN/proxy sebagai gantinya. Gunakan getip endpoint untuk memverifikasi IP mana yang dilihat server dari perangkat Anda.

Saya menerima 911

Ini menunjukkan masalah sisi server sementara. Tunggu setidaknya 5 menit sebelum mencoba lagi. Jangan mengulang permintaan dengan cepat — ini dapat memicu pembatasan kecepatan. Periksa halaman status FastDDNS untuk insiden aktif apa pun.

Seberapa sering saya harus melakukan polling pada titik akhir pembaruan?

Sebaiknya periksa perubahan IP setiap 5 menit. Ketika IP Anda tidak berubah, server mengembalikan nochg, yang merupakan no-op yang ringan. Polling lebih sering dari sekali per menit tidak dianjurkan dan dapat mengakibatkan pembatasan laju.