Perlでネットワークプログラミング

 Perlスクリプトで、ネットワークプログラミングを行っています。
 標準プロトコルを使って、独自にサーバやクライアントを作成すれば、ログの採取やアクセス制限やアクセス元の調査やハッカーに対するトラップの作成などを自由にできます。
 プログラムでは、strictモードで作成していますし、下位のSocketモジュールを使っていますので、C言語への移植も簡単にできるでしょう。 ソースは、ASHの許可を得て、転載しています。

ネットワークでHello World

 Helloサーバは、クライアントからアクセスがあると、HelloWorldを返却するスクリプトです。 Helloクライアントは、Helloサーバにアクセスし、返却されたメッセージを表示するスクリプトです。
 Hello Worldは、プログラムの基本ですよね。
 詳細は、ASHのネットワークプログラミングを参照してください。

hellosv.pl Helloサーバスクリプト
hellocl.pl Helloクライアントスクリプト

簡易HTTPブラウジングスクリプト

 機能は、HTTPヘッダとHTMLソースを表示するスクリプトです。 画面イメージは、自分で想像してください。
 HTTPプロトコルの勉強のために作成したのですが、HTTPヘッダが見れるブラウザとして、重宝しています。 改造ブラウザに対する、CGIのチェックにも使えます。
 詳細は、ASHの「Perlでブラウズ(HTTP)」を参照してください。

http.pl 簡易HTTPブラウジングスクリプト

簡易FTP転送スクリプト

 FTPコマンドの-dオプションと同じような動きをするPerlスクリプトです。 Passiveモードで、実際にファイルも転送できます。
 詳細は、ASHの「Perlでファイル転送(FTP)」を参照してください。

ftp.pl 簡易FTPスクリプト

簡易POPメール参照スクリプト

 コマンドラインでメールが読めます。
 mailコマンドよりも使いにくいけど、perlで作成されています。
 telnetでPOP3ポートにアクセスするのと、どう違うかと言われると、ほとんど同じです。 LISTでSubjectの一覧ぐらいは表示したいのですが、MIMEデコードがちょっと面倒なので、対応できていません。

pop.pl 簡易POPメール参照スクリプト

Usage: pop.pl [host [port]]

ユーザとパスワードを入力すると、以下のコマンドが使えます。

list            メール番号の一覧を表示
show メール番号 指定したメール番号のメールを表示
quit            終了

 もう少しがんばって、CGIによる、Webメーラに拡張する予定です。 Net::POP3モジュールなどのモジュールを使えば、簡単にできそうなのですけど、Socketを使ってプログラムを行うというポリシーに反するので、迷っています。 性能や信頼性など、実用性を考えるなら、モジュールを使うべきなんですけど、MIMEデコードぐらい、自分でやりたいという気持ちもありますので・・・



Copyright (C)1995-2000 Joe Masumura.
mail : joe@ash.or.jp