Help us understand the problem. What is going on with this article?

curl で No-IP のIPアドレスを更新する方法

More than 5 years have passed since last update.

概要

自宅サーバを運用している場合、IPアドレスが動的に変わることがよくあります。
そんなときは無料 Dynamic DNS サービスを使うと常に同じホスト名で動的に変わるIPアドレスを更新することができます。

自分は No-IP を使ってますが、ここはIPアドレスの更新に Web API が提供されています。
IPアドレスの更新方法として DiCE クライアントがよく紹介されていますが、 Web API が提供されているのでクライアントをインストールする必要ありません。curl コマンドで簡単に更新する事が出来ます。

更新方法

curl "https://YOUR-USERNAME:YOUR-PASSWORD@dynupdate.no-ip.com/nic/update?hostname=YOUR-HOSTNAME"

YOUR-USERNAME, YOUR-PASSWORD, YOUR-HOSTNAME を自分のものに変更してください。

参考 https://www.noip.com/integrate/request

Linux サーバなどの場合は cron と組み合わせると定期的にIPアドレスの更新が出来るようになります。

注意
cron に登録する場合、更新頻度が頻繁になると No-IP サーバに対して負荷がかかるようになるので自重しましょう。私は2時間に1回かつ日中帯(外出している時だけ)にしています。

cron の例

40 8-23/2 * * * curl -s "https://YOUR-USERNAME:YOUR-PASSWORD@dynupdate.no-ip.com/nic/update?hostname=YOUR-HOSTNAME" > /dev/null

生のパスワード が crontab に登録されるのが嫌な場合は次のように暗号化できます。

% echo -n YOUR-USERNAME:YOUR-PASSWORD | base64 
WU9VUi1VU0VSTkFNRTpZT1VSLVBBU1NXT1JE
#=> この "WU9VUi1VU0VSTkFNRTpZT1VSLVBBU1NXT1JE" をBasic 認証として登録

40 8-23/2 * * * curl -s -H "Authorization: Basic WU9VUi1VU0VSTkFNRTpZT1VSLVBBU1NXT1JE" "https://dynupdate.no-ip.com/nic/update?hostname=YOUR-HOSTNAME" > /dev/null
ikesato
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away