7 posts categorized "CGI Perl"

Jun 23, 2009

WebProxy3

CGIで動作するWebProxy3

--WebProxy3
http://www.ln-lab.net/lunar-night.lab/page-dl_webproxy3/design-white/lang-ja
Ver0.0.1β Win32 Self Extract Download ”をDL

DL後、ダブルクリックすると3つのフォルダが作成されます。

今回はレンタルサーバー”ロリポップ”上CGI動作させるように設定しました。

--パスの変更
解凍しましたフォルダ”WebProxy3_CGI_Server”内、
・register.cgi
・webproxy3.cgi

をエディタで開き、1行目を
#!/usr/local/bin/perl
に書き換える。

--パーミッションの変更

ロリポップサーバー上に”WebProxy3_CGI_Server”内のファイル及びフォルダを
全てアップロードします。
・register.cgi
・webproxy3.cgi

上記2つのファイルのパーミッションを”700”に変更

--クライアントPCの設定
WebProxyを動作させたいPCにおいて、解凍した”WebProxy3_2nd”フォルダ内、
WebProxy3_2nd.exeを起動する。

サーバー設定
・NativeServ ロリポップにアップロードした”webproxy3.cgi”までのフルパスを
設定する。
・Nativeサーバ チェックを外す(CGI動作のため)
・Basic認証 BASIC認証を設定している場合、チェックを入れて、ユーザー名及び
パスワードを入力する

プロキシ設定
別途プロキシの設定をしている場合、入力する

トンネリング有効 チェックを外す(CGI動作のため
----
以上設定をして接続ボタンを押す

WebProxyを使用したいインターネットブラウザを開き、Proxy設定の欄にて
HTTPプロキシ:localhost
ポート:8080

以上でWebProxy経由のWebアクセスが可能になります。
ファイヤーウォールやアクセス制限のかけてある環境において、それらの
セキュリティを無視してWebアクセスが可能になります。ある意味、管理者泣かせ
でしょうか。

また、自分の家庭環境においては独自ドメインを運用しているので、
外部からの独自ドメインアクセステストに重宝しています。

外部からWebサーバーを確認するサービス
--自宅Webサーバーアクセス試験 鷹の巣
http://sakaguch.com/cgi/test/TestHttpd/

--WWW サーバーテスト パソコンおやじ
http://www.aconus.com/~oyaji/www_tst/www_tst.htm

--みえ~たぞ君
http://www.huonpine.net/view/lpw.cgi

レンタルサーバー ロリポップ
http://lolipop.jp/

  ブログランキング

| | Comments (0) | TrackBack (1)

Mar 27, 2009

アクセス解析CGI アップデート

高機能アクセス解析CGI Standard版をありがたく使用させていただいて
いるのですが、ロリポップサポートより「Ver 3.8.1にセキュリティ脆弱性が
あるので最新版に更新してください」という趣旨のメールが
届きました。最新版 Ver4.0.2に更新しました。

--高機能アクセス解析CGI Standard版 Ver 4.0.2 (フリーソフト)
http://www.futomi.com/library/accs.html

上記サイトより"”accs4_0_2.zip”をDLし、解凍。
下記の通り、各種設定ファイルを変更しました。
*レンタルサーバー ロリポップ使用です。

変更箇所
--acc.cgi
#!/usr/bin/perl
↓ 変更後 ↓
#!/usr/local/bin/perl

--acclog.cgi
#!/usr/bin/perl
↓ 変更後 ↓
#!/usr/local/bin/perl

--conf/config.cgi
$c{PASSWORD} = 'password';
'password' を任意のパスワードに変更

$c{LOTATION} = 1;
↓ 変更後 ↓
$c{LOTATION} = 3;   月ごとのログのローティーションに変更

$c{MY_SITE_URLs} = [];
↓ 変更後 ↓
$c{MY_SITE_URLs} = ['http://nofx2.txt-nifty.com/it/'];
自サイトからリンクされたデータを除外設定に

$c{MANUAL_CGIURL} = '';
↓ 変更後 ↓
$c{MANUAL_CGIURL} = 'http://nofx2.oops.jp/cgi-bin/acc/acc.cgi';
acc.cgiのフルパスURLを指定

次に各種設定変更が終わったので、ファイルのアップロードです。
FFFTPにてファイルのアップロードですが、手順は下記の通り行いました。

1.念のため、現状オリジナルのaccフォルダごとローカルディスクに
コピー(バックアップ)

2./acc/logs フォルダを残して、サーバー上のフォルダ・ファイルを削除

3.ローカルで設定変更したファイルを含む、全てのファイル・フォルダを
アップロード

4.サーバー上のファイル”acc.cgi”及び”acclog.cgi”の
パーミッションを"700"に変更

以上の作業にて、特に問題なくVer 3.8.1 -> Ver 4.0.4へ移行することが
できました。もちろん、過去のアクセスログファイルも問題なく解析して
くれています。

--レンタルサーバー ロリポップ
http://lolipop.jp/

--FFFTP
http://www2.biglobe.ne.jp/~sota/


  ブログランキング

| | Comments (1) | TrackBack (0)

May 06, 2006

メール送受信テストシステム(2)

メール送信部のプログラム

testmail.cgi
----
#!/usr/local/bin/perl

# 画面表示
print "Content-type: text/html \n\n";
print "< html > \n";
print "< head > < title > Test send mail< /title > < /head > \n";
print "< body > \n";
print "< h1 > Test send mail< /h1 > \n";
print "< hr / > ";


use CGI;
use Jcode;


# 引数を取得する
$input_data = new CGI;

$count = $input_data- > param('count');
$to = 'hogehoge@japan.com';


# 送信前処理
$mailname = jcode($name)- > jis;


# ループ

for( $i=1 ; $i< =$count ; $i++) {

#######################
# 実行時の日時を取得

($sec, $min, $hour, $day, $mon, $year, $wdy, $yday, $isdst) = localtime(time);
@youbi = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
$year += 1900;
$mon++;

$time = "$year-$mon-$day, @youbi[$wdy], $hour:$min:$sec";


#######################
# Send mail

open (MAIL, "| /usr/lib/sendmail -t");

print MAIL "To: $to \n";
print MAIL "Subject: $time \n";
print MAIL "Content-Type: text/plain; \n\n";
print MAIL "test mail \n";

close(MAIL);

print "現在の日時は $year-$mon-$day, @youbi[$wdy], $hour:$min:$sec です。< br \/ > \n";
print "ただいま $i 回メールを送信しました。 < br \/ > \n";

#######################
# インターバル 5分

sleep(300);

}


# 画面表示

print "Test mail は $count 回繰り返されました。 \n";

print "< /body > < /html > \n";

exit;
----

しかし、現状借りていますレンタルサーバーにて動作テストを
するとタイムアウトを起こしてしまいます。(300秒の待ちは無理)
当たり前と言えば当たり前ですが、、、
たぶんサーバーの設定で"keep alive"は100sあたりになっているので
しょう。次なる手段として、自宅サーバーにPostfixなるメールサービスを
導入して、Perlスクリプトをcronで自動実行させてみようかと
考えています。


--参考図書
CGI/Perlハンドブック 第3版


←クリック一票

| | Comments (0) | TrackBack (0)

May 05, 2006

メール送受信テストシステム(1)

自動でメールの送受信をテストするシステムを作成してみたいと
思います。

--システム
外部システムからメールを受信 - メールクライアントより
エージェントを走らせ受信時に携帯メールへ転送

--用件
外部システム
・5分おきに送信
・Subjectに日時を挿入
・繰り返し回数を指定できる
・CGI及びSend mailで設計
実行インターフェース:testmail.html 
送信プログラム:testmail.cgi


testmail.html
----
< html >

< head >
< meta http-equiv="content-type" content="text/html; charset=shift_jis" >
< title > Test send mail< /title >
< meta name="generator" content="Namo WebEditor v6.0" >
< /head >

< body bgcolor="white" text="black" link="blue" vlink="purple" alink="red" >
< h1 > Send mail< /h1 >
< p >  < /p >
< form name="sendMail" method="post" action="./testmail.cgi" >
< p > Count: < input type="text" name="count" size="3" > < /p >
< p > < input type="submit" name="send" value="send" > < input type="reset" name="clear" value="clear" > < /p >
< /form >
< p >  < /p >
< /body >

< /html >
----


--参考図書
CGI/Perlハンドブック 第3版


←クリック一票

| | Comments (0) | TrackBack (0)

May 01, 2006

フォームからメールを送信 (2)

メールを送るためのCGIです。

sendMail.cgi
----
#!/usr/local/bin/perl

use CGI;
use Jcode;

# 引数を取得する
$input_data = new CGI;

$name = $input_data->param('name');
$subject = $input_data->param('subject');
$address = $input_data->param('address');
$body = $input_data->param('body');

# 送信先を指定する
$to = 'hoge@loripop.jp';


# 送信前処理
$mailname = jcode($name)->jis;
$mailbody = jcode($body)->jis;
$mailsubject = jcode($subject)->jis;


# メール送信

open (MAIL, "| /usr/lib/sendmail -t");

print MAIL "To: $to \n";
print MAIL "Subject: $mailsubject \n";
print MAIL "Content-Type: text/plain; \n\n";
print MAIL "名前: $mailname \n";
print MAIL "e-mail: $mailname \n";
print MAIL "$mailbody \n";

close(MAIL);


# 送信内容
$body =~ s/[\r\n,\n]/< br \/ > /g;


# 画面表示
print "Content-type: text/html \n\n";
print "< html > \n";
print "< head > < title > Test send mail< /title > < /head > \n";
print "< body > \n";
print "< h1 > Test send mail< /h1 > \n";
print "< hr / > ";
print "以下のメールを送信しました \n";
print "Name: $name< br / > \n";
print "Subject: $subject< br / > \n";
print "email: $address< br / > \n";
print "Body: $body \n < br / > ";
print "< /body > < /html > \n";

exit;
----

--参考図書
CGI/Perlハンドブック 第3版


←クリック一票

| | Comments (0) | TrackBack (0)

Apr 30, 2006

フォームからメールを送信(1)

sendmailを使って、フォームからメールを送信するCGIを
作成したいと思います。
構成は
sendMail.cgi
sendMail.html

の2つのファイルを作成し、実行させます。
sendMail.htmlがフォームページとなり、ココより引数をsendMail.cgiへ渡し
動作します。
まずはフォームページより

sendMail.html
----
< html >

< head >
< meta http-equiv="content-type" content="text/html; charset=shift_jis" >
< title > Test send mail</title >
< meta name="generator" content="Namo WebEditor v6.0" >
</head >

< body bgcolor="white" text="black" link="blue" vlink="purple" alink="red" >
< h1 > Send mail</h1 >
< p >  </p >
< form name="sendMail" method="post" action="./sendMail.cgi" >
< p > Name: <input type="text" name="name" size="30" > </p >
< p > Mail Address: <input type="text" name="address" size="30" > </p >
< p > Sebject: <input type="text" name="subject" size="30" > </p >
< p > <textarea name="body" rows="6" cols="60" > </textarea > </p >
< p > <input type="submit" name="send" value="send" > <input type="reset" name="clear" value="clear" > </p >
</form >
<p >  </p >
</body >

</html >
----
ヘッダーを見てお分かりの通り”Namo WebEditor v6.0”を使用して作成しました。


--参考図書
CGI/Perlハンドブック 第3版


←クリック一票

| | Comments (0) | TrackBack (0)

Apr 22, 2006

CGI 環境変数

CGIを使って、環境変数を表示させるスクリプトです。

env.cgi
----
#!/usr/local/bin/perl

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

print "<html>\n";
print "<head><title>CGI Environment</title></head>\n";
print "<body>\n";
print "<h1>CGI 環境変数リスト print "<hr />";

@envs = sort(keys(%ENV));
foreach $env_name (@envs) {
$value = $ENV{ $env_name };
print "$env_name = $value <br /> \n";
}

print "</body>\n";
print "</html>\n";

exit;
----

実行結果の出力サンプルです。
----
DOCUMENT_ROOT = /home/****/lolipop.jp/users/oops.jp-nofx2/web
GATEWAY_INTERFACE = CGI/1.1
HTTP_ACCEPT = text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_CHARSET = Shift_JIS,utf-8;q=0.7,*;q=0.7
HTTP_ACCEPT_ENCODING = gzip,deflate
HTTP_ACCEPT_LANGUAGE = ja,en-us;q=0.7,en;q=0.3
HTTP_CACHE_CONTROL = max-age=259200
HTTP_CONNECTION = keep-alive
HTTP_HOST = nofx2.oops.jp
HTTP_KEEP_ALIVE = 300
HTTP_USER_AGENT = Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2
HTTP_VIA = 1.1 VL31:8080 (squid/2.5.STABLE9)
HTTP_X_FORWARDED_FOR = unknown
PATH = /usr/local/bin:/usr/bin:/bin
QUERY_STRING =
REMOTE_ADDR = 125.***.35.114
REMOTE_PORT = 42387
REQUEST_METHOD = GET
REQUEST_URI = /cgi-bin/env/env.cgi
SCRIPT_FILENAME = /home/****/lolipop.jp/users/oops.jp-nofx2/web/cgi-bin/env/env.cgi
SCRIPT_NAME = /cgi-bin/env/env.cgi
SERVER_ADDR = 210.188.216.157
SERVER_ADMIN = nofx2@mk.oops.jp
SERVER_NAME = nofx2.oops.jp
SERVER_PORT = 80
SERVER_PROTOCOL = HTTP/1.0
SERVER_SOFTWARE = Apache
----


--参考図書
CGI/Perlハンドブック 第3版


←クリック一票

| | Comments (0) | TrackBack (1)