ようこそNICのホームページへ(なが〜い試運転中)    あなたは2001/5/12以来 人目の来訪者です。
HP パソコン 健康 落語 海外 思うまま 電子工作

携帯電話 iモードからddnsの非更新ログを表示(2011/10/15)
Last update:2011/10/15  build:2011/10/15





携帯電話から手軽にniftyのddns非更新ログを確認するようにしたい。

パソコンの画面からHTTPSを利用する画面は作成済みだが、機動性に欠け簡便ではない。
そこで、非更新ログのみ簡単に携帯電話から見られるようにした。
その記録を残すこととした。


1. ファイルの構成

iモードのトップページは
/i/index.html

その次に呼び出されるページは
/i/ddns-noupdate-i.html

さらにこれから呼び出されるcgiは
/usr/local/apache2/cgi-bin/tail_ddns_no_update-i.cgi


携帯電話から見ることを考え読み出す非更新ログは2行としました。

2. cgiファイル

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 -------------------



パソコンのことへ     HomePage     このページのトップ