0

私の Web サイトは、イントラネットにあるローカル サーバー B を認識しないパブリック Web サーバー A で実行されています。私のブラウザでは、オフィスにいれば、ブラウザのアドレス フィールドからイントラネットにアクセスできます。Web サーバー A から構築されたページに、ローカル サーバー B にある画像を表示することもできます。ただし、サーバー A で実行されている php で file_exists(サーバー B のファイル) を使用すると、php スクリプトが実行されているため機能しません。サーバーBを認識しないサーバーA上。

ブラウザがサーバー B にアクセスできるか (オフィスにいるか、vpn 経由でトンネリングしているか) を検出する必要があるため、サーバー B のローカル ファイルを表示/ダウンロードするか、Web サーバー A のファイルを表示/ダウンロードするかを決定できます。 ?

また、アスタリスク サーバーを呼び出して pabx を呼び出すことができるかどうかを確認するためにも、その関数が必要です。

4

2 に答える 2

1

あなたが正しいことを理解していれば、このhttp://php.net/manual/en/function.get-headers.phpが役立つかもしれません。リモートサーバー上の任意のファイルに「ping」を実行し、返されたヘッダーを確認し、返されたコードが 200 の場合、サーバーにアクセスできます。

于 2012-09-20T16:10:16.910 に答える
0

サーバー A にアクセスすると、スクリプトはあなたのアドレス (オフィスの住所) を評価し、それがサーバー B からの画像を表示できるアドレスのセットに含まれていることを認識できます。オフィスの外からサーバー A にアクセスすると、スクリプトは次のことができます。 B からの画像を表示しないように設定できます。

適切な変数は

while(list($key, $val) = each($_SERVER))
{
    $$key = $val;
    printf("%s = %s  \n",$key, $val);
}

もちろん、上記の HTTP ヘッダーを見て、

[0] => HTTP/1.1 200 OK

サーバーBに到達しようとするときに存在するかどうかは問題ありませんが、IPからすでにわかっている可能性のあるサーバーへのアクセスに失敗する必要があります。

サーバーAでどのIPがOKであるかを理解する必要があるため、これは「ハードコード」シナリオであり、変更される可能性があることを認めます。この場合、クライアントの JavaScript ソリューションがよりスムーズになる可能性があります。

于 2012-09-20T16:31:02.620 に答える