MyDNSへのIP通知のスクリプト


#!/bin/sh
##Update IPv4 address to mydns.
tmpfile=tmp.$$

##Fetch only IP address into tmpfile
curl -s [IP_checking_site] | egrep -o "[0-9]{1,3}(\.[0-9]{1,3}){3}" > $tmpfile

##Set variables from tmpfile
set $(cat $tmpfile)
ipaddr=$1
mid=[ID]
passwd=[PASSWD]

##Double quotation is needed in order to evaluate variables
curl "www.mydns.jp/directip.html?MID=${mid}&PWD=${passwd}&IPV4ADDR=${ipaddr}"
rm -rf $tmpfile

MyDNSでは、HTTPのGETリクエストのクエリに自サーバのIPアドレスを含めることによってIPアドレスの通知を行うことができます。
上記のスクリプトは自サーバのIPアドレスを外部のIP確認サイトで確認したのち、そのIPをMyDNSへ通知するためのスクリプトになります。

コマンド補足
grepやegrepの"-o"オプションはパターンにマッチした単語のみを抽出するオプションになります。
外部のIP確認サイトにアクセスした場合、レスポンスにHTMLのタグが含まれることがほとんどだと思いますが、
egrep -o "[0-9]{1,3}(\.[0-9]{1,3}){3}"とすることによって、HTMLタグを無視し、IPアドレスのみを抽出することができます。

Leave a Reply

Your email address will not be published. Required fields are marked *