0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macOS による MyDNS.JP の定期IPアドレス通知処理

0
Last updated at Posted at 2026-01-23

はじめに

旅行先から自宅に VPN 接続のために、Dynamic DNS の1つである「MyDNS.JP」を利用していますが、定期的にIPアドレスを通知する必要があります。

PC や Mac を買い替えるたびに、このIPアドレス通知の処理をコピーすることを忘れて、Webで調べて設定していました。

Gemini に聞けばすんだ

Web で調べる前に、Gemini さんに聞けばあっという間に解決。
以下、やりとりの要点。


Shell 作成依頼

macOSで以下の処理を実行する、zshファイルを作成してください。
・httpsでipv4.mydns.jp に接続する。
・ログインに使用するユーザーIDは「XXXXXX」とする。
・ログインに使用するパスワードは「YYYYYY」とする。


Gemini 回答

macOSで指定された条件(MyDNSのIP通知を想定)を実行するzshスクリプトを作成しました。

mydns_update.sh
#!/bin/zsh

# 認証情報
USER="XXXXXX"
PASS="YYYYYY"

# MyDNSのHTTPS更新用URL
# ログインすることで送信元のIPアドレスが登録されます
URL="https://ipv4.mydns.jp/login.html"

echo "Updating MyDNS IP address via HTTPS..."

# curlによる実行
# -u: Basic認証 (ユーザー名:パスワード)
# -s: 進捗を表示しない(サイレント)
curl -s -u "${USER}:${PASS}" $URL

echo "\nUpdate process finished."

筆者補足

・「mydns_update.sh」のパーミッションは「700」、配置場所は「/Users/ユーザー名」
※ 「Documents」「Desktop」フォルダは、プログラムの実行が制限されている模様。


launchd 設定確認

mydns_update.sh を毎時 05分と35分の30分ごとに実行する、macOSのlunchd plistファイルを作成し、設定する方法を提示してください。

筆者補足

自宅のフレッツ光で IP アドレスが変わった場合に、MyDNS.JPへの反映時間を考慮して、更新タイミングは30分に1回としました。


Gemini 回答

macOSのlaunchdを使用して、指定されたスケジュール(毎時05分と35分)でスクリプトを自動実行するための設定手順をまとめました。

1. plistファイルの作成

以下の内容を jp.mydns.update.plist という名前で保存してください。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>jp.mydns.update</string>

    <key>ProgramArguments</key>
    <array>
        <string>/Users/あなたのユーザー名/mydns_update.sh</string>
    </array>

    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Minute</key>
            <integer>5</integer>
        </dict>
        <dict>
            <key>Minute</key>
            <integer>35</integer>
        </dict>
    </array>

    <key>StandardOutPath</key>
    <string>/tmp/mydns_update.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/mydns_update.err</string>
</dict>
</plist>

2. 設定と実行の手順

ステップ1:plistファイルを配置する
ユーザー用のエージェント設定ディレクトリにファイルを移動します。

mv ~/Desktop/jp.mydns.update.plist ~/Library/LaunchAgents/

ステップ2:ファイルの権限を確認
plistファイルの権限が適切であることを確認します。

chmod 644 ~/Library/LaunchAgents/jp.mydns.update.plist

ステップ3:launchdに登録・開始する
以下のコマンドで、macOSにこの設定を読み込ませて開始します。

launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/jp.mydns.update.plist

停止する場合

launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/jp.mydns.update.plist

3. 動作確認の方法

正しく登録されたか、また動いているかを確認するには以下のコマンドを使います。

・登録状況の確認:

launchctl list | grep mydns

(左側の数字が「0」であれば正常終了しています)

・手動で今すぐ実行テスト:

launchctl kickstart -p gui/$(id -u)/jp.mydns.update

・ログの確認: 実行結果やエラーは /tmp/mydns_update.log または /tmp/mydns_update.err に書き込まれます。

cat /tmp/mydns_update.log

まとめ

最初の質問で用途は伝えていないにもかかわらず、接続先 URL から MyDNS.JP の IP 通知用と判断したあたり脱帽でした。
調べ物をするときは、「生成AIにまず聞く」→「Webで確認する」で十分ですね。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?