#!D:/Perl/bin/perl.exe # サーバー稼動監視チェックPerlスクリプトその1(Windowsサーバー専用BASP21版) # BASPsvrchk1.pl 2002.08.21 作成:鷹の巣 http://sakaguch.com/ # BASP21.DLLの入手先は、http://www.hi-ho.ne.jp/babaq/basp21.html # 参考Webは、BASP21ソケットオブジェクト # http://www.hi-ho.ne.jp/babaq/basp21s.html # http://doppo.no-ip.com/j-serv/s_check/s_check.htm #■□■ WWWサーバーの設定 ■□■ $host = 'example.com'; # 実在する例示用ドメイン名 # $host = '192.168.200.200'; # 実在しないプライベートアドレス $port = 80; # httpのサービスポート番号 $timeout = 60; # 接続待ち許容時間(秒) #■□■ WWWサーバーの設定終わり ■□■ use Win32::OLE; # OLEパッケージの使用 # Set bsocket = WScript.CreateObject("basp21.socket") ' WSH(Windows Scripting Host) my $BSOCKET = Win32::OLE -> new('basp21.socket');#Basp21オブジェクトの作成と変数の確保 # rc = bsocket.Connect(dest,port[,timeout]) # タイムアウト省略値120秒 $rc = $BSOCKET -> Connect($host,$port,$timeout); # $rc=0:接続OK、0以上:Winsock Error(典型的なエラーは 11001 ホスト名が見つからない) # $rc=-1:ソケットオープンエラー、-2 : タイムアウト print "Connect=$rc\n"; # 正常時は、0を表示。 # rc = bsocket.Write(data) # data [in] : 送信データ変数。 $rc = $BSOCKET -> Write("OPTIONS * HTTP/1.0\r\n\r\n");# $rc=0:送信OK、0以上:Winsock Error # $rc=-1:ソケットクローズ、-2 : タイムアウト、-3 : データなし print "Write=$rc\n"; # 正常時は、0を表示。 # data = bsocket.Read2([mode]) # data [out] : データを受取る変数。 # mode [in] : 受取るデータ形式。0:文字列(省略値)、1:バイナリ。1バイトの配列でデータが返されます。 # 2:16進形式の文字列。16:文字列。到着したデータをピークします。データは、バッファに残します。 # 17:バイナリのピーク。18:16進形式のピーク。 # bsocket.Result # プロパティに結果コードが数字で返されます。 $data = $BSOCKET -> Read2(0); # 応答伝文を読む。 # print "Data=$data\n"; # 正常時は、HTTP/1.1 200 OK...を表示。 $rc = $BSOCKET -> Result; # $rc=0:受信OK、0以上:Winsock Error # $rc=-1:ソケットクローズ、-2 : タイムアウト、-3 : データなし print "Result=$rc\n"; # 正常時は、0を表示。 # bsocket.Close $BSOCKET -> Close; # 接続を切断します。