#!/usr/bin/perl #↑Perlの位置を指定してください。 ################################################# ##コスモスオンライン自動接続機能用PerlスクリプトVer 1.0 ##(2000/04/28) # http://www.kano.ac # #[このファイルは自由に改造して使用していただいて構いません] # #[使用法] #◇その1・・・まずPerlのパスをこのファイルの一番上の行に書きます #       例:#!/usr/bin/perl など。 #       コマンドラインからwhich perlと入力すると判ります。 #       (コマンドラインにログインできる環境に限りますが) #◇その2・・・下のパラメータを説明通りに書き換えて下さい。 #       なお、このままでも結構です。 #       (ファイル名を変えた場合は$targetを修正して下さい。) #◇その3・・・データ用のファイルを制作します。 #       中身の空のファイルを$datafileで設定した名前とパスに置きます。 #       (デフォルトではiptext.txtというファイルをこのファイルと同じ #        階層に置きます) #◇その4・・・パーミッションの設定をします。 #       このファイル(デフォルトcosmos.cgi)は「chmod 755」に設定、 #       データファイル(デフォルトiptext.txt)は「chmod 666」に設定。 # # #◇その5・・・上の設定が終了したらブラウザでこのファイルにアクセスしてください。 #       最後に「***?set=1」とすると設定画面が、何も書かないとコスモスオンライン形式の #       プレーンテキストが表示されます。 #       例:http://ra.sakura.ne.jp/~mir/cgi_test/cosmos.pl?set=1」など。 #       コスモスオンラインの自動接続欄には #       例えば、http://ra.sakura.ne.jp/~mir/cgi_test/cosmos.plのように入力します。 #=======[▽下のパラメータを入力して下さい] #↓ 書き込まれた情報を処理するCGIのパス #↓(通常はこのCGIの名前を記して下さい) $target = './cosmos.pl'; #↓ 情報を書き込むファイルの名前を記して下さい。 $datafile = './iptext.txt'; #↓ パスワードを設定して下さい。 $passw = ''; #↓ 必要ならばヘッダを変えて下さい。(最初〜まで) $head = ' 自動接続先アドレス '; $end = ' '; #=======[▽以下はスクリプトです] 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; $value =~ s/\r\n/
/g; $value =~ s/\r/
/g; $value =~ s/\n/
/g; $FORM{$name} = $value; } #ファイルを開く open(YA,"$datafile"); @LU = ; close(YA); $IPADD = $ENV{'REMOTE_ADDR'}; &write; $ipad = $LU[0];#IPアドレス $date = $LU[1];#更新日 $yuko = $LU[2];#有効時間 $cprt = $LU[3];#ポート $cmes = $LU[4];#メッセージtx $mess = $LU[5];#メッセージmess if($FORM{'set'} ne ''){ &printhtml; }else{ &cosmosv; } exit; sub cosmosv { if($yuko > time){ $ipok = 1; }else{ $ipok = 0; } ($sec,$min,$hor,$mday,$mon,$year,$dd0,$dd1,$dd2) = localtime($date); $mon = $mon ++; $date = sprintf("%02d年%02d月%02d日%02d時%02d分%02d秒",$year%100,$mon,$mday,$hor,$min,$sec); print "Content-type: text/plain\n\n"; print "コスモスオンライン自動接続情報 更新時間:$date\n\n"; print "#ok $ipok\n\n"; print "#ip $ipad\n\n"; print "#pt $cprt\n\n"; print "#tx $cmes\n\n"; print "#ms $mess\n\n"; ($sec,$min,$hor,$mday,$mon,$year,$dd0,$dd1,$dd2) = localtime($yuko); $mon = $mon ++; $yuko2 = sprintf("%02d年%02d月%02d日%02d時%02d分",$year%100,$mon,$mday,$hor,$min); if($yuko == 0){ print '現在、無効です。'; }else{ print $yuko2.'まで有効です。'; if($yuko < time){ print ' *期限切れです'; } } print "\n\n"; } sub printhtml{ print "Content-type: text/html\n\n"; print $head; print $wmes; print "「".$IPADD."」からアクセスされています。

"; print "
"; print '

'; print '    パスワード:
'; print '   終了予定時刻:午前8時分前
'; print '秋桜チャットポート:
'; print '   IPアドレス:
'; print '    グループ名:
'; print '    メッセージ:
'; print ""; print ""; print '使用不可にする:
'; print '
'; print "
";
	

	&cosmosv;

	print "
"; print $end; } sub write{ if($FORM{'write'} ne ''){ if($FORM{'pass'} eq $passw){ if($FORM{'des'} eq '1'){ @LU = ''; $LU[0] = 'none'; $LU[1] = time; $LU[2] = 0 ; }else{ $lt = time; $la = $lt % 86400; $ls = $lt - $la; $yuko = $ls - 3600 - ($FORM{'yukosec'}*60); if ($yuko < $lt) {$yuko = $yuko + 86400;} @LU = ''; $LU[0] = $FORM{'cosip'}."\n"; $LU[1] = time."\n"; $LU[2] = $yuko."\n" ; $LU[3] = $FORM{'cosport'}."\n"; $LU[4] = $FORM{'cosname'}."\n"; $LU[5] = $FORM{'cosname2'}."\n"; } open(CS,">$datafile"); print CS @LU; close(CS); }else{ $wmes = 'パスワードが無効です。
'; } } }