|
>>3434 初心者 シェルの一行目を #/bin/csh -x に変更して再実行すれば 実際に変数に何が入ってくるか確認できますよ。 |
|
No. 3436 の通りすがりさん、No. 3440 zshさん、 書き込みありがとうございます 私の環境が違うのかも知れません。下記のように表示されてるので。 Digital UNIX V4.0B (Rev. 564 Digital UNIX Japanese Support V4.0A (rev. 3.1) で、やっぱりおっしゃるとおり実行したのだけど、だめなんです。 if ( $a == $b ) の、右辺の変数名が、分かりません、とかそう言うエラーが出るので、 結局 @ df=$a - $b if ($df == 0 ) で、何とかうまくいきました。 ありがとうございました。 |
|
>>3431 68user こんにちは、Muleです。 すみません、コマンドでtelnet起動、失敗しました(^^; これが出来たら、結構使えるスクリプトになるかもと思っていたのですが、やはり無理がありますかね... コード全体の流れとしては、 プロキシのチェックルーチンをよび、flagが立っていればif分岐、という典型的な処理です。 if($flag){ #telnetを起動し、接続元をファイルに記録する処理 } else{ my $img = 'file.gif'; my $byte = (stat $img)[7]; print "Content-Type: image/gif\n"; print "Content-Length: $byte\n\n"; open IMG,$img; binmode((binmode(IMG),$|=1)[0]); print map {$_} <IMG>; close IMG; } やはり、イメージで呼び出すという方式では、FTPで、というのが、現実的でしょうか? socketと組み合わせれば、なんとかなりそうな気がしていろいろ試してみましたが...上手く行かないものですね。 |
|
>>3442 Mule わたしは http は proxy 経由かもしれないが、ftp や telnet は proxy 経由でないことを期待して、クライアント側から ftp や telnet でサーバに接続させるように仕向けて、 IP アドレスを取得する と思っていたのですが、そうではないようですね。 > コード全体の流れとしては、プロキシのチェックルーチンをよび、 > flagが立っていればif分岐、という典型的な処理です。 「proxy のチェック」というのは公開 proxy サーバかどうかを 調べるため、クライアントの IP アドレスに接続してみる、という ことですよね。 telnet で接続、というのは http://x68000.startshop.co.jp/~68user/unix/pickup?sleep てな方法でできます。もちろん代わりに Socket を使ってもいいです。 方法はともかく、公開 proxy かどうかの判断はやろうと思えばできます。 で、なぜ if($flag){ #telnetを起動し、接続元をファイルに記録する処理 } と proxy チェックルーチンを呼んだ後 ($flag が確定した後) に もう一度 telnet を実行する必要があるのでしょうか? #telnet を起動し、クライアントの IP アドレスに接続。 #接続できたら $flag=1; if($flag){ #接続元をファイルに記録する処理 open(LOG, ">log"); print LOG "$ENV{REMOTE_ADDR} is open proxy\n"; close(LOG); } とすればよいのではないですか? |