API Klien FastDDNS

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

Ikhtisar

FastDDNS Client API memungkinkan perangkat apa pun yang mendukung HTTP — router, kamera IP, skrip, atau perangkat lunak updater khusus — untuk menjaga hostname DNS Anda tetap mengarah ke alamat IP saat ini. API menggunakan desain permintaan GET sederhana: klien Anda mengirim kredensial dan hostname, lalu server merespons dengan kode status singkat yang menunjukkan hasilnya.

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

ℹ️ Keduanya HTTP HTTPS didukung. HTTPS sangat disarankan untuk melindungi kredensial Anda selama transmisi.

Autentikasi

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

🔑 Kredensial per hostname: Setiap hostname yang Anda buat di FastDDNS akan diberikan user_namenama penggunauser_pass dan kata sandi khususnya sendiri. Kredensial ini hanya dapat hanya memperbarui hostname tersebut dan tidak dapat digunakan untuk masuk ke dasbor manajemen FastDDNS. Desain ini membatasi dampaknya jika kredensial perangkat sampai disusupi.

Metode 1 — Autentikasi Dasar HTTP (disematkan dalam URL)

Kredensial disematkan dalam URL menggunakan format standar user:password@hostBasic Auth. 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 Tempat menemukannya
{user_name} Nama pengguna yang ditetapkan untuk hostname ini saat dibuat. FastDDNS Dashboard → Hostnames → Details
{user_pass} Kata sandi yang ditetapkan untuk hostname ini saat dibuat. FastDDNS Dashboard → Hostnames → Details
{hostname} Hostname lengkap yang akan diperbarui, misalnya testhost.fastddns.org. FastDDNS Dashboard → Hostnames → Details

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 khusus.

https://client.fastddns.net/?hostname={hostname}&user_name={user_name}&user_pass={user_pass}
Parameter Tipe Deskripsi
{user_name}
 
string Nama pengguna yang ditetapkan untuk hostname ini saat dibuat.
{user_pass} string Kata sandi yang ditetapkan untuk hostname ini saat dibuat.
{hostname} string Hostname lengkap yang akan diperbarui, misalnya testhost.fastddns.org.

Contoh menggunakan autentikasi string kueri:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=YOUR_UPDATE_USERNAME&user_pass=YOUR_UPDATE_PASSWORD
⚠️ Saat menggunakan autentikasi string kueri, selalu utamakan HTTPS agar kredensial tidak dikirimkan 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 hostname yang terdaftar di akun Anda. Setiap permintaan memperbarui satu hostname pada satu waktu.

Endpoint

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 wajib string hostname lengkap (FQDN) yang akan diperbarui, misalnya myhome.fastddns.net atau testhost.fastddns.org. Hanya satu hostname yang didukung per permintaan.
user_name Metode 2 string Nama pengguna untuk hostname 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 hostname 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 masuk untuk menentukan IP publik Anda. Anda tidak perlu menyediakan alamat IP myip.

Contoh Permintaan

Metode 1 — Autentikasi Dasar HTTP melalui HTTPS:

https://YOUR_UPDATE_USERNAME:YOUR_UPDATE_PASSWORD@client.fastddns.net/?hostname=testhost.fastddns.org

Metode 2 — Query string melalui HTTPS:

https://client.fastddns.net/?hostname=testhost.fastddns.org&user_name=YOUR_UPDATE_USERNAME&user_pass=YOUR_UPDATE_PASSWORD

Menggunakan HTTP biasa (hanya untuk pengujian / jaringan tepercaya):

http://YOUR_UPDATE_USERNAME:YOUR_UPDATE_PASSWORD@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 hostname 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 berubah.

nochg {ip}

Tidak Perlu Perubahan

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

badauth

Autentikasi Gagal

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

nohost

Hostname Tidak Ditemukan

Hostname yang ditentukan tidak ada di akun Anda atau tidak memenuhi syarat untuk pembaruan dinamis. Periksa ejaan hostname dan pastikan hostname tersebut terdaftar di akun Anda.

911

Kesalahan Server

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

Ringkasan Respons

Teks Respons Status HTTP 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 terbaru
badauth 200 Kredensial tidak valid Periksa nama pengguna / kunci klien
nohost 200 Hostname tidak terdaftar Verifikasi hostname di dashboard
911 200 Kesalahan di sisi server Coba lagi setelah 5+ menit
⚠️ Penting untuk otomatisasi: Selalu parsing 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 endpoint utilitas sederhana yang mengembalikan alamat IP publik seperti yang terlihat oleh server. Ini berguna untuk penelusuran kesalahan, memverifikasi IP yang digunakan perangkat Anda, atau digunakan dalam skrip kustom sebelum memanggil endpoint pembaruan.

Endpoint

GET https://client.fastddns.net/dyndns/getip
Autentikasi tidak diperlukan. Endpoint ini juga dapat diakses melalui HTTP biasa.

Respons

Mengembalikan HTTP 200 OK dengan alamat IP publik yang terdeteksi sebagai teks biasa dalam 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

# 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

Python

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

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

Bash (Cron / Skrip Router)

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

Penyelesaian masalah

Saya menerima badauth

user_nameServer 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 Hostnames → Details. Perhatikan bahwa kredensial ini khusus untuk hostname dan tidak dapat digunakan untuk masuk ke portal manajemen FastDDNS. Jika Anda baru saja mengatur ulang kredensial, perbarui semua perangkat yang menggunakan hostname tersebut.

Saya menerima nohost

Nama hostname dalamhostname parameter tidak ada atau bukan milik akun yang diidentifikasi oleh kredensial yang diberikan. Periksa kesalahan ketik pada hostname, pastikan hostname tersebut tercantum di dasbor Anda, dan verifikasi bahwa user_name dan user_pass cocok dengan hostname tersebut.

Server mendeteksi IP yang salah

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

Saya menerima 911

Ini menunjukkan masalah sementara di sisi server. Tunggu setidaknya 5 menit sebelum mencoba lagi. Jangan mengulangi permintaan dengan cepat—hal ini dapat memicu pembatasan laju. Periksa halaman status FastDDNS untuk mengetahui apakah ada insiden aktif.

Seberapa sering saya harus melakukan polling pada titik akhir pembaruan?

Kami menyarankan untuk memeriksa perubahan IP setiap 5 menit. Jika IP Anda tidak berubah, server mengembalikan nochg, yang merupakan no-op ringan. Polling lebih sering daripada sekali per menit tidak disarankan dan dapat menyebabkan pembatasan laju.