推奨:ASP基本チュートリアル:ASPのサブプログラムのアプリケーションの学習ASPでは、VBScriptやその他の方法で独自のプログラムに電話することができます。例:VBScriptを使用してサブルーチンを呼び、ASPからVBScriptで書かれたサブルーチンを呼び出す方法。 以下は引用されたコンテンツです
プロキシを通過した後、クライアントとサービスの間に中間レイヤーが追加されるため、サーバーはクライアントのIPを直接取得できず、サーバー側のアプリケーションは転送アドレスを介してクライアントに直接返すことができません。ただし、http_x_forwarded _ ???? http_x_forwarded _ ????元のクライアントIPアドレスと、元のクライアントが要求したサーバーアドレスを追跡するために使用されます。
キャッシュ互換アプリケーションの設計原則を説明する2つの例を次に示します。
'サーバー名のアドレスを必要とするASPアプリケーションの場合:http_host/server_nameを直接参照しないでください。http_x_forwarded_serverがあるかどうかを判断します
| 以下は引用されたコンテンツです。 関数gethostname() dim hostname as string = hostname = request.servervariables(http_host) isdbnull(request.servervariables(http_x_forwarded_host))ではない場合 len(trim(request.servervariables(http_x_forwarded_host))> 0の場合 hostname = request.servervariables(http_x_forwarded_host) ifを終了します ifを終了します hostnmaeを返します エンド関数 |
//クライアントIPを記録する必要があるPHPアプリケーションの場合:remote_addrを直接参照するのではなく、http_x_forwarded_forを使用します。
| 以下は引用されたコンテンツです。 関数getUserip(){ $ user_ip = $ _server [remote_addr]; if($ _server [http_x_forwarded_for]){ $ user_ip = $ _server [http_x_forwarded_for]; } } |
注:http_x_forwarded_for複数の中間プロキシサーバーを通過する場合、複数のアドレスをコンマで分割するにはどうすればよいですか?多くの場合、クライアントアドレスを記録するために使用されるフィールドは20バイトに設定されていますが、これは小さすぎます。
以下のようなエラーメッセージがよく表示されます。
Microsoft Jetデータベースエンジンエラー '80040E57'フィールドは、追加するデータの量を受け入れるには小さすぎます。データを挿入または貼り付けてみてください。
/inc/char.asp、行236
その理由は、クライアントアクセスアドレスを設計するとき、関連するユーザーのIPフィールドサイズを50を超えるバイトに設計することが最適です。
共有:ASPコードのフォールトトレランスメカニズム中国で最も人気のあるASPを例にとると、実際にコードを書くとき、私は何人の人々が断層耐性の概念を考えています。なぜそれについて考えてみてください