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.
Autentikasi
API mendukung dua metode autentikasi. Keduanya sama-sama diterima — pilih metode yang lebih mudah dikonfigurasi pada perangkat atau router Anda.
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.
| 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.
| 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:
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
https dengan http.Format URL — Metode 1: Autentikasi Dasar HTTP
Format URL — Metode 2: String Kueri
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). |
myip.
Contoh Permintaan
Metode 1 — Autentikasi Dasar HTTP melalui HTTPS:
Metode 2 — Query string melalui HTTPS:
Menggunakan HTTP biasa (hanya untuk pengujian / jaringan tepercaya):
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.
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.
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.
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.
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.
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 |
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
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
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.