トップページperl
327コメント55KB

UNKO ヾ('Д')ghと作ろう、CGI

■ このスレッドは過去ログ倉庫に格納されています
0001UNKO ヾ('Д')ghNGNG
むぎ茶に対抗だゴラァ。
第1弾まもなく発表!

┏━━━━━━━━━┓
┃ヾ('Д')gh   ┃
┃UNKO       ┃
┗━━━━━━━━━┛


0002 UNKO ヾ('Д')ghNGNG
#!/usr/bin/perl

## UNKO ヾ('Д')gh
## TXT ver.-1 アクセス穴ライザー付き
## TXTを使ったUNKOのCGI アクセスチェッカ〜
#http://tako.2ch.net/test/read.cgi?bbs=perl&key=995532491&ls=100

#以下設定ヾ('Д')gh####################

#UNKO1のテキスト相対パス
#テキストの中にHTML文を記入することでホームページを作ることが出来ます。
#ページにアクセスするときはunko.cgiにアクセスしよう。
$unko_txt1 = "./unko_1.txt";
#タイトル
$unko_title = "UNKO ヾ('Д')gh --- UNKO TXT ver.-1";
#ログを何日間記録するか。初期設定10日間のログを保存。
$log_time ="10";
#カウンター前の文章
$unko_a ="UNKOカウンター 本日は";


#以下BODYヾ('Д')gh####################

$unko_html .= "<HTML><HEAD><title>$unko_title</title></HEAD><BDOY>\n";
&unko_counter_1;
&unko_counter_2;
&unko_1;

#以下著作権表示改変不可。削除すんなよ、ゴラァ。ヾ('Д')gh ####################
$unko_html .= "<p><p><p><small><a href=\"http://tako.2ch.net/test/read.cgi?bbs=perl&key=995532491&ls=100\">UNKOヾ('Д')ghTXTver.-1アクセスチェッカ〜</a></small>\n";
$unko_html .= "</BODY></HTML>\n";

print "Content-type: text/html\n\n";
print "$unko_html\n";
exit;


#UNKOテキストの読みとりヾ('Д')gh####################
sub unko_1 {
open (UNKO_, "$unko_txt1");
@unko = <UNKO_>;
close (UNKO_);
foreach $unkosuki (@unko) {
$unko_html .= "$unkosuki";
}
}
0003UNKO ヾ('Д')ghNGNG
#UNKOカウンターの記録ヾ('Д')gh####################
sub unko_counter_1{

$unko_dir = "./log/";
# 日時を取得
$ENV{'TZ'} = "JST-9";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time - 24*60*60*$log_time);
$del_unko = sprintf("%02d%02d%02d",$year,$mon +1,$mday);
$del_unko = $unko_dir . "$del_unko\.csv";
unlink("$del_unko");

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
@wday_array = ('日','月','火','水','木','金','土');
$date = sprintf("%01d\/%01d<br>(%s)",$mon +1,$mday,$wday_array[$wday]);
$unko_db = sprintf("%02d%02d%02d",$year,$mon +1,$mday);
$unko_db = $unko_dir . "$unko_db\.csv";
$time ="$year年$mon月$mday日$hour時$min分$sec秒$wday_array[$wday]曜日";

&env_1;

#同一IPチェック
$flag = 0;
open(IN, "$unko_db");
while(<IN>){
chomp;
($tmp_time,$tmp_addr,$tmp_host) = split /,/;
if($tmp_addr eq "$r_addr"){
$flag = 1;
last;
}
}
close IN;
unless($flag){
open(OUT, ">> $unko_db");
print OUT "$time,$r_addr,$r_host,$r_ident,$r_port,$r_user,$h_accept,$h_accept,$h_accept_c,$h_accept_e,$h_accept_l,$h_connection,$h_cookie,$h_form,$h_host,$h_referer,$h_user_a,$h_cache_c,$h_cache_in,$h_cache_ip,$h_forwarded,$h_pragma,$h_proxy_c,$h_sp_host,$h_te,$h_via,$h_x_f\n";
close OUT;
}
}
0004UNKO ヾ('Д')ghNGNG
#UNKOカウンター表示ヾ('Д')gh####################
sub unko_counter_2{
if (!open(UNKO_,"$unko_db")) {}
$ac = 0;
while(<UNKO_>) {

($time,$tmp_addr,$tmp_host) = split(/\,/);
$ac++;
}
close(UNKO_);

$unko_html .= "<b>$unko_a $ac 人</b><br>\n";
}

#環境変数ヾ('Д')gh####################
sub env_1{
#ユーザ関連の情報
$r_addr = $ENV{"REMOTE_ADDR"}; #自分(接続元)のIPアドレス
$r_host = $ENV{"REMOTE_HOST"}; #自分(接続元)のホスト名
$r_ident = $ENV{"REMOTE_IDENT"}; #自分(接続元)のユーザID
$r_port = $ENV{"REMOTE_PORT"}; #自分(接続元)のポート番号
$r_user = $ENV{"REMOTE_USER"}; #自分(接続元)の認証時のユーザ名
#クライアント関連の情報
$h_accept = $ENV{"HTTP_ACCEPT"}; #*/* ブラウザがサポートするMIMEタイプ(データ形式)
$h_accept_c = $ENV{"HTTP_ACCEPT_CHARSET"}; #ブラウザがサポートする文字コードセット
$h_accept_e = $ENV{"HTTP_ACCEPT_ENCODING"}; #エンコード形式(gzip,deflate等)
$h_accept_l = $ENV{"HTTP_ACCEPT_LANGUAGE"}; #ブラウザがサポートする言語(ja,en等)
$h_connection = $ENV{"HTTP_CONNECTION"}; #接続の状態
$h_cookie = $ENV{"HTTP_COOKIE"}; #このURLに対するcookieの情報
$h_form = $ENV{"HTTP_FORM"}; #ブラウザに設定されているE-Mailアドレス
$h_host = $ENV{"HTTP_HOST"}; #接続するホスト名
$h_referer = $ENV{"HTTP_REFERER"}; #参照(リンク)元のURL
$h_user_a = $ENV{"HTTP_USER_AGENT"}; #ブラウザに関する情報(種類,バージョン等)
#プロキシ関連の情報
$h_cache_c = $ENV{"HTTP_CACHE_CONTROL"}; #キャッシュする最長時間など
$h_cache_in = $ENV{"HTTP_CACHE_INFO"}; #キャッシュの情報
$h_cache_ip = $ENV{"HTTP_CLIENT_IP"}; #接続元のIPアドレス
$h_forwarded = $ENV{"HTTP_FORWARDED"}; #プロキシまたはクライアントの場所
$h_pragma = $ENV{"HTTP_PRAGMA"}; #プロキシのキャッシュに関する動作方式
$h_proxy_c = $ENV{"HTTP_PROXY_CONNECTION"}; #プロキシの接続形態
$h_sp_host = $ENV{"HTTP_SP_HOST"}; #接続元のIPアドレス
$h_te = $ENV{"HTTP_TE"}; #プロキシ等がサポートするTransfer-Encodings
$h_via = $ENV{"HTTP_VIA"}; #プロキシの情報(プロキシの種類,バージョン等)
$h_x_f = $ENV{"HTTP_X_FORWARDED_FOR"}; #接続元のIPアドレス
}
0005UNKO ヾ('Д')ghNGNG
unko_1.txtの中身

<font size="7">UNKO ヾ('Д')ghと作ろう、CGI</font>
0006UNKO ヾ('Д')gh NGNG
ディレクトリ構造

unko.cgi 705
unko_1.txt 604

└─./log/ 600 動作しなかったら606 (ログ保存フォルダ)
0007 UNKO ヾ('Д')gh NGNG
第2弾、まもなく発表。
UNKO フォトアルバム
UNKO画像を、簡単登録、簡単閲覧。
主な機能
自動縮小、自動拡大、スライド表示。
0008名無しさんNGNG
>>7
ガンバレ。。
0009名無しさんNGNG
なんかこの顔かわいいかも・・・
>ヾ('Д')gh
0010名無しさんNGNG
だが板違いな気も…まぁ良いか。
0011名無しさんNGNG
>>10
なぜか同意。
頑張れ1。
0012名無しさんNGNG
1の自作自演が相次いでるらしいな。

=== 昇華 ===
0013名無しさんNGNG
1の使えないと思ったら、動作したのでびびったよ。
無駄な環境変数を記録しまくりなのが気になるが・・・。
0014名無しさんNGNG
なんかカワイイな・・・・まぁモッチャリやってくれや
0015名無しさんNGNG
ははは、、意外に人気有ったり ^^; 面白いぞ>>1
00169NGNG
なんかマターリしててかわいいよ〜
いいな〜(>∇<)
荒らされないようにさげさげ。
0017 NGNG
糞スレまわします
0018名無しさんNGNG
たまにはこんなスレもいいじゃん
なんか平和で。
0019 NGNG
動かないと思ったら動いたからビックリしたぞ w
logビューワでも書こうかな・・・・ がんばれ!>>ヾ('Д')gh
0020名無しさんNGNG
>>17
あげ厨ウザイよ。ヾ('Д')gh はどうしてるのかな
久々に可愛い気なスレだから応援したいぞ
0021名無しさんNGNG
ヾ('Д')ghはどうした?
放置されたと思ってしょげてるんかな。
0022名無しさんNGNG
21=ヾ('Д')gh
0023名無しさんNGNG
まあ気長にまとう
0024名無しさん@お腹いっぱい。2001/07/25(水) 07:23ID:???
しょげるなよ(w
マジでマターリカワイイと思って待ってるぞ
■ このスレッドは過去ログ倉庫に格納されています