-
- function getip() {
- $unknown = 'unknown'
- if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && strcasecmp($_SERVER['HTTP_X_FORWARDED_ FOR '] , $unknown) ) {
- $ip = $_SERVER['HTTP_X_FORWARDED_FOR'] } elseif
- ( isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR']) , $unknown) ) {
- $ip = $_SERVER['REMOTE_ADDR'];
- }
- /* マルチレイヤー プロキシ状況を処理するか、通常のメソッドを使用します: $ip = preg_match("/[/d/.]{7, 15 }/", $ip, $matches) ? $matches[0] : $unknown; */
- if (false !== strpos($ip, ','))
- $ip =reset(explode(', ' , $ip)); return $ip
-
-
コードをコピーします
;
関数 getenv('HTTP_X_FORWARDED_FOR') または getenv('REMOTE_ADDR') を使用して、上記のコードと同じ効果を達成することもできます。
ただし、getenv() は IIS isapi モードで実行される PHP をサポートしていないことに注意することが重要です。
|