携帯電話から手軽にniftyのddns非更新ログを確認するようにしたい。
パソコンの画面からHTTPSを利用する画面は作成済みだが、機動性に欠け簡便ではない。 そこで、非更新ログのみ簡単に携帯電話から見られるようにした。 その記録を残すこととした。 iモードのトップページは /i/index.html その次に呼び出されるページは /i/ddns-noupdate-i.html さらにこれから呼び出されるcgiは /usr/local/apache2/cgi-bin/tail_ddns_no_update-i.cgi 携帯電話から見ることを考え読み出す非更新ログは2行としました。 cgiファイルは以下の通り。 #!/usr/bin/perl -w # -w ワーニングを出す # /usr/local/bin/ddns4nifty/no_update.logを携帯電話iモードで出力する # /usr/local/apache2/cgi-bin/tail_ddns_no_update-i.cgi mod 755 # 2009/02/10 ---> # 2011/10/15 修正 完了 # program # use strict; # 宣言した変数以外を使えなくする $| = 1; # ゼロ以外が代入されると出力をバッファリングしなくなる。 my $sec; my $min; my $hour; my $mday; my $mon; my $year; my $wday; my $yday; my $isdst; my $tt; my $null=""; my $line=""; # 読み込み書き込みファイルオープン # 読み取り 書き込み 追加 新規作成 上書き # < filename ○ × × × × # > filename × ○ × ○ ○ # >> filename × ○ ○ ○ × # +< filename ○ ○ × × × # +> filename ○ ○ × ○ ○ # +>> filename ○ ○ ○ ○ × # ======================== # ファイルによる呼び出し限定の場合 # my $okfile1= "https://192.168.24.111/cgi-call/ddns_update.html"; # 呼び出しを許可するファイル名(localhost) # my $okfile2= "https://www.nic.atnifty.com/cgi-call/ddns_update.html"; # 呼び出しを許可するファイル名(ddns nifty) # my $okfile3= "https://nic825.ddo.jp/cgi-call/ddns_update.html"; # 呼び出しを許可するファイル名(ddns ddo.jp) # 2011/10/14 今回は呼び出し制限をしない。 # ############### ここからhtml出力へ htmlへ出力する場合この下の行が出力の最初になければならない print "Content-type: text/html\n\n"; # iモードから呼び出すためチェックを外す(2011/10/15) # &from_check_f; # 呼び出し元チェック用のサブルーチン呼び出し # 2011/10/14 コメントアウトを外す(今回は使わない) #print "system \n"; #system 'tail /usr/local/bin/ddns4nifty/no_update.log'; # ------ ファイルを1行ずつ読み込み、EOFで終了 ---------------- # ------ open分のファイル名の後ろに"|"を付けることでファイル名をコマンドと見なしその出力をファイルハンドラに入力できる ---- print "open ddns4nifty/no_update.log<br>\n"; # open( IN, "tail -30 /usr/local/bin/ddns4nifty/no_update.log |"); open( IN, "tail -2 /usr/local/bin/ddns4nifty/no_update.log |"); while ( $line = <IN>) { print $line,"<br>"; } close(IN); exit; # --------- 呼び出し元チェック用のサブルーチン ----------------------- sub from_check_f { if($ENV{'HTTP_REFERER'} ne $okfile1){ if($ENV{'HTTP_REFERER'} ne $okfile2){ if($ENV{'HTTP_REFERER'} ne $okfile3){ print "不正なCGI呼び出しです。"; exit; } } } # ---------- 念のためPOST限定 --------- # if( $ENV{'REQUEST_METHOD'} eq "GET" ) { # print "不正な呼び出しです(GET)。"; # exit; # } } # --------- チェック用のサブルーチン END ------------------- |