#!/usr/local/bin/perl ############################################################################### # # NetGenesis4 接続・切断・状態確認・時刻設定 CGI (1999.02.06) # nwg4con.cgi # Copyright(C) 1998-1999 M.Okamura (anb@y7.net) # http://hp.vector.co.jp/authors/VA008536/ # # 動作確認(通信プロトコルは独自解析のものです。) # Firmware Version : 2.204 (PS1) # Firmware Version : 1.x でも動作可能だと思う。(未確認) # Perl for Win32 build 316 + MS PersonalWebServer # TurboLinux 3.0J 付属の Perl + apache # # 改変は自由です。もっと使いやすくしてください。 # CGIな処理(引数とか)の部分をカットすればコマンドライン版にもできますね。 # MacPerlでも動きそうです。 # # NetGenesis4は株式会社マイクロ総合研究所(http://www.mrl.co.jp/)の製品です。 # ############################################################################### # NetGenesis4のIPアドレス(各自の環境で書き換えてください)#################### $them = '192.168.0.1'; # for test(一つだけコメントアウトすると、コマンドラインから確認できます) #### #$ENV{'QUERY_STRING'} = 'connect=1'; #$ENV{'QUERY_STRING'} = 'disconnect=1'; #$ENV{'QUERY_STRING'} = 'time=1'; #$ENV{'QUERY_STRING'} = 'status=1'; # コマンド固有バイト列(シリアル2を使う人はコメントを外してください)######### $time = "\x41\x0B"; $connect = "\x01\x6A"; # SERIAL 1 $disconnect = "\x01\x68"; # SERIAL 1 $status = "\x01\x64"; # SERIAL 1 #$connect = "\x01\x6B"; # SERIAL 2 #$disconnect = "\x01\x69"; # SERIAL 2 #$status = "\x01\x65"; # SERIAL 2 # CGI引数解析 ################################################################# if ($ENV{'REQUEST_METHOD'} eq "POST") { read( STDIN , $buffer , $ENV{'CONTENT_LENGTH'} ); } else { $buffer = $ENV{'QUERY_STRING'}; } @pairs = split( /&/ , $buffer ); foreach $pair ( @pairs ) { ( $name , $value ) = split( /=/ , $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $form{$name} = $value; } # 引数から使用するコマンド決定 ################################################ $cmd = ''; $cmd = $connect if( $form{'connect'} ne '' ); $cmd = $disconnect if( $form{'disconnect'} ne '' ); $cmd = $time if( $form{'time'} ne '' ); $cmd = $status if( $form{'status'} ne '' ); # コマンドが未定義の場合は、メニュー表示 ###################################### if( $cmd eq '' ) { print "Content-type: text/html\n\n"; print <<"MENU";