LoginSignup
1
0
お題は不問!Qiita Engineer Festa 2023で記事投稿!

高校生が「お名前.com ダイナミックDNSクライアント API」つくってみた。

Last updated at Posted at 2023-06-27

お名前.comでは、DDNS用のIPアドレス更新ツールが公式で提供されています。しかし、提供されいるのはWindows版のみなので、macOSやLinuxなどでは利用することができません。

少し調べてみると、非公式の方法で実装できることが分かりました。
ということで、(n番煎じですが)APIを叩くだけでIPアドレスが更新される「お名前.com ダイナミックDNSクライアント API」を作成しました!

使い方

WebAPIなのでPythonが動くサーバーが必要になります。
適当に用意してください。私はRender.comを利用しています。
(準備が整い次第、サーバーを公開する予定です。)

GitHubから最新版をダウンロードし、以下のコマンドを実行してください。

$ pip install -r requirements.txt
$ uvicorn api:app --host 0.0.0.0

表示されたリンクにアクセスすると、ドキュメントが表示されます。

以下のリンクにアクセスするだけで、対象のAレコードが更新されます。
http://***.***.***.***/update/?userid=(お名前ID)&password=(パスワード)&hostname=(ホスト名)&domname=(ドメイン名)&ip=(IPアドレス)

ご不明点や不具合等ありましたら、お気軽にお問い合わせください。

参考

参考というか丸パクリです。ありがとうございます!

開発の経緯

ここからは戯言です。読み飛ばしていただいて構いません。

Synology NASでWEBサイトを作成しています。タスクスケジューラーでコマンドを設定して、更新することもできますが、なんか怖いのであまりしたくありません。
そこで、APIを叩くだけで更新できれば便利なのでは?と思い、開発しました。

技術選定

Googleで検索すると、上の方にtom-tan/onamae-ddns-clientがヒットしました。Pythonの経験があることもあり、こちらを利用させていただくことにしました。

Webフレームワークは、普段Flaskを使っていますが、FastAPIというAPIに特化したフレームワークがあることを知り、使ってみることにしました。

2to3

$ 2to3 -w client.py

バイナリ関連の仕様変更があった模様で、エラーが発生した一部を修正しました。

実装

  • FastAPIが思ったより簡単で楽でした。
  • 例外処理に苦戦しました。

サーバー

自宅サーバーを立てることもかんがえましたが、本末転倒なのでレンタルサーバーを使うことにしました。

これまではHerokuを使うことが多くありましたが無料枠が無くなってしまっため、他のサービスを検索してみたところRender.comを見つけました。

GitHubで連携しただけでデプロイ完了。めちゃくちゃ便利です。

1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0