最初のddns自動更新のページは−> ここ
2008(H20)年12月3日に何故か外部から自分のHPに繋がらなくなった。 もう一つのダイナミックdnsであるddo!jpからは繋がる。 どうもniftyのダイナミックdnsがおかしいようだ。 perlで書いたプログラムは何もさわっていないので nifty側で何かあったに違いないと思い、過去にもddnsが不調で何人かの人がトラブルメモを 書き込んでいたページがあったことを思い出した。 googleで探しに行くがうまくヒットせず、変わりにniftyのddnsのお知らせのページにヒット 読んでみると、12月3日にHPはもとより ddnsのシステムもリニューアル(PDF)されたとある。 3日の日はその移行日で夕方まで使えなかったようだ。 お知らせの中に、DiCEのplug−inの変更が示されていた。 それをもとにperlの修正する。 一応httpsでconnectできた。 その時のwgetのログが以下の通り --18:53:11-- https://domain.nifty.com/cp/ddns/DdnsIpChangeAdd.do? => `-' Resolving domain.nifty.com... 202.248.236.10 Connecting to domain.nifty.com|202.248.236.10|:443... connected. WARNING: Certificate verification error for domain.nifty.com: self signed certificate in certificate chain HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] [ <=> ] 17,418 --.--K/s 18:53:12 (389.03 KB/s) - `-' saved [17418] これでうまく行ったと思っていたが、外部から繋がらない。 何かがおかしい???? googleで色々調べたり、niftyのddnsのページも調べたがわからない。 wgetのオプション部分をいろいろ変えて試行錯誤したがわからない。 niftyのddnsの 「よくある質問」の最下段に 「 よくある質問を読んでも解決できなかった場合は?」 というページがあり、 「ダイナミックDNSに関するお問い合わせ」 という質問ページのフォームがあり、 FAQに無いものは質問できるようになっている。 perlを使っているのでサービス対象外だが、質問することにした。藁にもすがる気持ち!! ところが、「ただいまシステムが大変混み合っております。恐れ入りますが、しばらくしてからご利用ください。」(PDF) とのメッセージ。丸3日、朝に夕にメールを送ろうとしたが、全く同じ上のメッセージが繰り返されるだけで メールが送れない。 混雑しているだけとは思えない。反応である。 初めから断りのメッセージを出すcgiが組んであるように思えてならないような反応。 受け付ける気が無いなら、初めからこんなページを作るな!!! その後、googleでいろいろ調べていて、「futomi's cgi cafe」さんのページを見つけ うまく行くかもしれないと思い試すと、うまく行った!!! 違いはここ。?以下のこの部分「?change_type=ip」 うまく行かなかったケース: $wget=`wget --secure-protocol=auto --no-check-certificate -O- -q --http-user=$niftyidうまく行った ケース: $wget=`wget --secure-protocol=auto --no-check-certificate -O- -q --http-user=$niftyidなんとか更新できたようだ。 うまく行ったときのwgetのログです。うまく行かなかった場合と比較して下から2行目に「ok」が出ています。 --19:30:05-- https://domain.nifty.com/cp/ddns/DdnsIpChangeAdd.do?change_type=ip => `-' Resolving domain.nifty.com... 202.248.236.10 Connecting to domain.nifty.com|202.248.236.10|:443... connected. WARNING: Certificate verification error for domain.nifty.com: self signed certificate in certificate chain HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] 0K .......... ....... 95.54 KB/s 19:30:14 (95.54 KB/s) - `-' saved [17460] IPアドレス更新時のwgetのログをip-change-log.txtに書き込み、記録を残すようにした。 修正したperlのスクリプトを載せておきます。crontabはそのままです。 Perlのスクリプト(2008/12/11修正)とcrontabの例です。 Perlのスクリプト(2009/03/01修正) Perlのスクリプト(2009/03/03修正) Perlのスクリプト(2009/03/10修正) Perlのスクリプト(2009/03/18修正) なお、サーバーの環境は以下のとおり(2008/12/11現在変わっていません。) PC:VersaPro VA70J/WXA (M Pentium3 700MHz,Memory=256MB,HDD=20GB) OS:Freebsd 6.1  :Linux linux_base-8-8.0_14 DiCE:diced01913.tar.gz(Linux 版) Perl:perl-5.8.8 wget:wget-1.10.2 Openssl:OpenSSL 0.9.7e-p1 25 Oct 2004 |