ddns-update

自宅サーバが応答しなくなったので、サーバ再起動して、ルータも再起動したのに治らない。単にDDNSが更新されていないだけだった。ieserver.netを使わせて頂いているので、IP更新ツールddns-updateを修正。

  • wgetでhttpsアクセスをする際のserver certificateチェックをしないようにする
    • wgetのオプションに –no-check-certificate を付ける
    • 本当は –certificate=file でちゃんと指定すべきだね
  • IP更新時のパターンマッチに失敗しているので、複数行を1行と見なしてパターンマッチするように変更
    • if ($STATUS =~ m/$NEW_IP/) { を if ($STATUS =~ m/$NEW_IP/s) { に変更。
  • 差分はこんな感じ。
  • — ddns-update.pl.old  Wed Mar 24 16:30:30 2004
    +++ ddns-update.pl      Tue Aug 23 00:57:35 2005
    @@ -46,9 +46,9 @@

     if ($NEW_IP ne “0.0.0.0” and $CURRENT_IP ne $NEW_IP) {

    –    $STATUS = `wget -q -O –
    ‘$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1’`;

    –    if ($STATUS =~ m/$NEW_IP/) {
    +    $STATUS = `wget -q –no-check-certificate -O –
    ‘$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1’`;
    +
    +    if ($STATUS =~ m/$NEW_IP/s) {
             open (FILE ,”>$CURRENT_IP_FILE”);
             print FILE $NEW_IP;
             close FILE;

カテゴリー: FreeBSD, Install, Software パーマリンク