68user's page 掲示板

Prev< No. 3443> Next  [最新発言に戻る] [過去ログ一覧]
No. 3443 # 68user 2003/12/04 (木) 19:08:33
>>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);
      }

とすればよいのではないですか?

Prev< No. 3443> Next  [最新発言に戻る] [過去ログ一覧]