背景
お名前ドットコムの DDNS クライアンをは Windows のみに対応している。
https://help.onamae.com/answer/7920にアクセスできませんでしたhelp.onamae.com
自宅サーバーは Ubuntu なので、 Python で動く DDNS クライアントを作成した。
機能
- お名前ドットコムで管理している DNS の A レコードを現在の IP で更新する
- 複数のホスト名に対応
- 更新不要なときは API をたたかない
仕組み
- 現在の IP を取得
- FQDN に対応するアドレス取得
- IP アドレスが違っていたら API を叩いて更新
インストール
リポジトリでは pipenv を使用している。Pipfile には Python3.11.9 と記載してあるが、バージョンが多少異なっていても問題は無いだろう。
使用しているパッケージは以下の 2 つなので、pipenv を使わなくても pip install でインストールできる。
- requests
- dnspython
設定
config.json
設定は config.json で行う。
(リポジトリの config.json.copy を編集・名前変更して使用してください。)
config.jsonの例
| |
crontab
このプログラムは実行時に 1 度だけ処理が行われる。
従って, crontab に登録して定期実行する使い方が良いだろう。
- 設定例(一時間ごとに実行)
| |
カレントディレクトリにログが書き出されるので cd しておくと良い。
- ログの例
| |