検討!目論見検討委員会

最近はコミケの締切情報メイン

DDNS更新スクリプト

自ホストのIPアドレスDDNSに登録するスクリプトを書いた。
perlbashスクリプトの返値が入らず困った。
自ホストのIPアドレスは以下を
http://www.tymy.net/~matsu/blog/2008/04/08/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7ip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E6%B1%82%E3%82%81%E3%82%8B%E6%96%B9%E6%B3%95/
参考にして、freeBSD用に書き換え。

/sbin/ifconfig | grep 'inet ' | grep -v 127.0.0.1 | gawk '{print $2;}'

上記スクリプトperlのsystem関数に渡すが、帰ってくる値は0。
getLoaclIP.shは上記シェルスクリプトが書いてあるスクリプトファイル。

system "/bin/sh ./getLocalIP.sh > current_ip_tmp";

しょうがないので一旦ファイルに書き込み、読み出し。

open(FH,"<current_ip_tmp");
$NEW_IP = <FH>;

$NEW_IPをprintすると、何故か$NEW_IPの最後に改行が入っているらしい。cat -ev current_ip_tmpしても入ってないのになあ。perlの仕様か?
IPアドレスが更新されたか見たら、設定されていないとか言われる仕様。

// でも振られるIPが固定なので別にいっかあ(謎