概要
FastDDNSクライアントAPIは、HTTP対応デバイス(ルーター、IPカメラ、スクリプト、専用のアップデータソフトウェアなど)が、あなたのDNSホスト名を現在のIPアドレスに割り当てることを可能にします。 APIはシンプルなGETリクエスト設計に従っています。クライアントが認証情報とホスト名を送信し、サーバーは結果を示す短いステータスコードを返します。
サーバーは、着信接続からクライアントのパブリックIPアドレスを自動的に検出します。IPを指定するために追加のパラメータは必要ありません。
認証
APIは2つの認証方法をサポートしています。どちらも同じように受け入れられます。デバイスやルーターで設定しやすい方を選んでください。
user_nameとuser_passが割り当てられます。これらの資格はただ
その特定のホスト名を更新し、FastDDNS管理ダッシュボードへのログインには使えません。この設計により、デバイスの認証情報が侵害された場合の影響を抑えます。
方法1 — HTTP基本認証(URL埋め込み)
認証情報は標準のuser:password@host形式でURLに埋め込まれます。これはルーター、カメラ、HTTPクライアントライブラリで広くサポートされています。ダッシュボードのUpdater Client Keyをパスワードとして使ってください。
| フィールド | 概要 | 場所 |
|---|---|---|
| {user_name} | ユーザー名は作成時にこの特定のホスト名に割り当てられました。 | FastDDNS ダッシュボード →ホスト名 →詳細 |
| {user_pass} | この特定のホスト名に作成時に割り当てられたパスワードです。 | FastDDNS ダッシュボード →ホスト名 →詳細 |
| {hostname} | 更新すべき完全限定ホスト名、例えばtesthost.fastddns.org。 |
FastDDNS ダッシュボード →ホスト名 →詳細 |
方法2 — クエリ文字列パラメータ
認証情報はhostnameと一緒にプレーンクエリパラメータとして渡されます。これは、HTTPのBasic Authヘッダーを設定できないが、完全にカスタムURLの文字列を許可するデバイスやファームウェアに有用です。
| パラメータ | 種類 | 概要 |
|---|---|---|
| {user_name} |
string | このホスト名は作成時に割り当てられたユーザー名です。 |
| {user_pass} | string | このホスト名が作成された際に割り当てられたパスワードです。 |
| {hostname} | string | 更新すべき完全限定ホスト名、例:testhost.fastddns.org。 |
クエリ文字列認証の例:
アップデートを実行する
アカウントに登録されているホスト名のIPアドレスを更新するための単一のGETリクエストを送信します。各リクエストは一度に1つのホスト名を更新します。
終着点
httpsをhttpに置き換えてください。URLフォーマット — 方法1:HTTP基本認証
URLフォーマット — 方法2:クエリ文字列
クエリパラメータ
| パラメータ | 種類 | 概要 |
|---|---|---|
| hostname 必須 | string | 更新する完全限定ホスト名(FQDN)、例:myhome.fastddns.net または testhost.fastddns.org。リクエストごとにホスト名は1つのみ対応されています。 |
| user_name 方法2 | string | このホスト名のユーザー名です。クエリ文字列認証(方法2)を使用する際に必要です。HTTP Basic Auth(メソッド1)を使う場合は不要です。 |
| user_pass 方法2 | string | このホスト名のパスワードです。クエリ文字列認証(方法2)を使用する際に必要です。HTTP Basic Auth(メソッド1)を使う場合は不要です。 |
myipパラメータを指定する必要はありません。
例示リクエスト
方法1 — HTTPSによるHTTP基本認証:
方法2 — HTTPS上のクエリ文字列:
プレーンHTTPの使用(テスト/信頼されたネットワークのみ):
返送コード
すべての更新応答はHTTPステータスを返します200 OK 本文はプレーンテキストで。 クライアントはこのテキスト本文を解析し、更新の実際の結果を判断する必要があります。
アップデート成功
ホスト名の記録は検出されたIPアドレスに更新されています。実際のIPアドレスは応答に含まれており、例:good 203.0.113.45。これはIPが変わったときに期待される反応です。
変更は不要です
ホスト名はすでに検出されたIPアドレスを指しており、更新は必要ありませんでした。現在のIPは含まれており、例:nochg 203.0.113.45。これは通常のエラーなしの応答です。
認証失敗
ユーザー名やアップデーターのクライアントキーが間違っているか、取り消されています。FastDDNSダッシュボードで認証情報を確認してください。自動で再試行せず、まず認証情報を修正してください。
ホスト名が見つかりません
指定されたホスト名はアカウントに存在しないか、動的更新の対象外です。ホスト名のスペルを確認し、あなたのアカウントに登録されているか確認してください。
サーバーエラー
FastDDNSサーバー側で内部エラーが発生しました。再挑戦する前に少なくとも5分は待ってください。問題が続く場合は、FastDDNSのステータスページを確認するかサポートに連絡してください。
回答概要
| 回答本文 | HTTPステータス | 意味 | 必要な行動 |
|---|---|---|---|
| good {ip} | 200 | IPが正常に更新されました | なし — 更新完了 |
| nochg {ip} | 200 | IPアドレスは変更せず、更新もありません | ありません — すでに最新 |
| badauth | 200 | 無効な資格情報 | ユーザー名/クライアントキーを確認してください |
| nohost | 200 | ホスト名は登録されていません | ダッシュボードでホスト名を検証してください |
| 911 | 200 | サーバーサイドエラー | 5+分後に再挑戦 |
200を返します — テキスト本文は更新が実際に成功したかどうかを示します。
クライアントIPを取得する
FastDDNSは、サーバーが認識したパブリックIPアドレスを返すシンプルなユーティリティエンドポイントを提供します。 これはデバッグや、デバイスがどのIPから送信しているかの確認、またはアップデートエンドポイントを呼び出す前のカスタムスクリプトで使うのに便利です。
終着点
反応
HTTPを返す200 OK 検出されたパブリックIPアドレスはレスポンス本文の平文として表示されます。
# Example response body
203.0.113.45RESPONSE
例示リクエスト
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
Bash(Cron / ルータースクリプト)
#!/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を検出しています
サーバーはTCP接続の送信元IPを使用します。デバイスがNATルーターの背後にある場合、ルーターのパブリックIPが検出されます。これは通常望ましい動作です。VPNやプロキシに接続している場合、サーバーはVPNやプロキシの出口IPを認識します。 getip endpointを使って、サーバーがあなたのデバイスからどのIPを認識しているか確認してください。
私は911を受け取っています。
これは一時的なサーバー側の問題を示しています。再挑戦する前に少なくとも5分は待ってください。リクエストを高速でループさせないでください。これによりレート制限が発生します。FastDDNSのステータスページでアクティブなインシデントがないか確認してください。
アップデートエンドポイントはどのくらいの頻度でポーリングすべきでしょうか?
IPの変更は5分ごとに確認することをおすすめします。IPが変わらなければサーバーはnochgを返しますが、これは軽量なノーオペレーションです。1分に1回以上の投票は推奨されず、速度制限につながる可能性があります。