コマンドライン DNS: シェルスクリプトで Porkbun API を使用する
DNS の管理に関しては、次の 3 つのカテゴリに分けられると思います。
- ほとんどの人は、Web ブラウザ経由で DNS を管理します。つまり、レジストラ、プロバイダー、パネル、またはサードパーティの DNS プロバイダーにログインし、GUI を使用して DNS レコードを変更します。
- 7 桁の金額を保有している人は、一連の複雑なクラウド API 呼び出しを通じて DNS を管理しています。
- そして、独自の DNS を管理し、ゾーン ファイルにアクセスして、シリアル番号の管理に独自の最適化されたシステムを使用するハードコアなユーザーもいます。
しかし、あなたは私のような人だとしたらどうでしょう。つまり、面倒くさがりなので自分の DNS サーバーを実行する気にはなれないが、自分がコマンド ラインの LowEndZone (ターミナル ウィンドウが 10 個開いていて、机の上にカフェイン入りの飲み物の残りが散らばっていて、ヘッドフォンからはウィリー ジョーンズが聞こえている) にいることに気づいたとき、インターフェイスのセマンティクスを直交的に壊して、Web ブラウザーで自分のレジストラでホストされている DNS を更新するのを嫌がる人です。
そのような場合は、Porkbun API が役に立つかもしれません。公式のサンプルでは Python と Java が使われていますが、これは JSON を POST するだけなので、curl でも簡単に実行できます。
はじめる
Porkbun APIを使い始めるには、まず「Porkbun APIを使い始める」という記事を読んでください。はい、ほぼこれだけで大丈夫です。
指示に従って次の 2 つのことを行います。
- API キーを取得します。
- 作業するドメインの API アクセスをオンにします (デフォルトではオフになっています)。
サンプルの使用
以下は、192.168.1.1 を解決する「example.lowend.party」という A レコードを作成するスクリプトです。
#!/bin/bash
curl --header "コンテンツタイプ: application/json" \
--リクエスト POST \
- データ '{
「apikey」: 「MY_API_KEY」、
"secretapikey": "MY_SECRET_KEY",
「名前」:「例」、
「タイプ」:「A」、
「コンテンツ」:「1.2.3.4」、
"ttl" : "600"
}' \
https://porkbun.com/api/json/v3/dns/create/lowend.party
エコー実行すると、次が返されます:
# ./dns.sh {"ステータス":"成功","id":302181389}
確認するには:
# nslookup example.lowend.party 8.8.8.8 サーバー: 8.8.8.8 住所: 8.8.8.8#53 非権威的な回答: 名前: example.lowend.party 住所: 1.2.3.4 #
フル機能API
Porkbun APIを使えば、作成、取得、更新、削除といった基本的なCRUD操作をすべて実行できます。取得にはドメイン指定も含まれるため、特定のドメインのすべてのレコードを一覧表示することも可能です。
詳細についてはAPI ドキュメントを確認し、上記の curl スクリプトをテンプレートとして使用してください。変更するのは、送信する JSON と API エンドポイントだけです。