0

このコードの使用:

サーバーAIにはこれがあります:

$handle = fopen('http://www.server_b.com/get_ip.php', 'r'); //This is just a PHP file that echoes the REMOTE_ADDR
echo "IP looks like ".fread($handle, '100000')." to external server.\n";
fclose($handle);
echo "IP looks like ".$_SERVER['SERVER_ADDR']." to this server.";

サーバーBIには次のものがあります。

echo $_SERVER['REMOTE_ADDR'];

サーバーAから次の出力を取得しています。

IP looks like xxx.xxx.223.90 to external server. //xxx.xxx on both lines are the same
IP looks like xxx.xxx.223.94 to this server.

2つの異なるIPを取得するのはなぜですか?.90〜.94のIP範囲を所有していることに注意してください

4

1 に答える 1

1

これはVPSであるため、server_bに表示されるのは、server_aが実行されているVPSのホストマシンのIPアドレスです。

それか、他のプロキシメカニズムが進行中です。

これを回避する方法があるかもしれません:

server_bでaprint_r()を実行します。$_SERVER

関連するさまざまなサーバーの構成によっては、に加えて、のREMOTE_ADDRような値を取得する場合もあります$_SERVER['HTTP_FORWARDED']。これは、プロキシによって渡される元のマシンのIPアドレスであり、期待するものである必要があります。

この質問はさらに役立つかもしれません:PHPでユーザーの正しいIPアドレスを取得するための最も正確な方法は何ですか?

于 2012-10-05T15:31:39.697 に答える