2

サーバーがプロキシの背後にあり、PHPで使用しているユーザーのIPを取得しようとしています

$IP = $_SERVER['HTTP_X_FORWARDED_FOR'];

最近私が見ている問題の一部のユーザーIPは、以下の例のIPのようなものです。

173.0.0.000, 190.000.00.01
173.0.0.000, 190.000.00.02
173.0.0.000, 190.000.00.03
173.0.0.000, 190.000.00.04
173.0.0.000, 190.000.00.05

以下のように正しいIPを取得するにはどうすればよいですか。すべてのIPで発生するわけではありません。

4

1 に答える 1

2

の形式X-Forwarded-For、client1、proxy1、proxy2です。したがって、リストの最初のアドレスを取得する必要があります。

$IP = current(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']));

echo $IP; // 173.0.0.000

複数のアドレスがある場合でも、1つしかない場合でも、最初のIPアドレスが取得されます。

于 2012-05-16T22:27:49.480 に答える