ホームページ  >  記事  >  バックエンド開発  >  PHPでユーザーのIPアドレスを取得する方法

PHPでユーザーのIPアドレスを取得する方法

(*-*)浩
(*-*)浩オリジナル
2019-09-20 11:04:0112375ブラウズ

IP アドレス: インターネット プロトコル アドレス (IP アドレス) は、インターネット プロトコルを使用して通信するコンピュータ ネットワークに接続されているすべてのデバイスに割り当てられる数値ラベルです。 IP アドレスには、ホストまたはネットワーク インターフェイスの識別と位置のアドレス指定という 2 つの主な機能があります。

PHPでユーザーのIPアドレスを取得する方法

#$_SERVER['REMOTE_ADDR']: 現在のページを閲覧しているユーザーのコンピュータの IP アドレス

$_SERVER['HTTP_CLIENT_IP']: クライアントの IP (推奨学習:

PHP プログラミングの入門から習熟まで )

$_SERVER['HTTP_X_FORWARDED_FOR']: を閲覧するユーザーのコンピュータのゲートウェイ現在のページ

$_SERVER['HTTP_X_REAL_IP']: nginx プロキシ モードで、クライアントの実際の IP を取得します

/**
 * 获取客户端IP地址
 */
function real_ip()
{
  $ip = $_SERVER['REMOTE_ADDR'];
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', 
  $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
    foreach ($matches[0] AS $xip) {
      if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
        $ip = $xip;
        break;
      }
    }
  } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', 
  $_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
  } elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', 
  $_SERVER['HTTP_CF_CONNECTING_IP'])) {
    $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
  } elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', 
  $_SERVER['HTTP_X_REAL_IP'])) {
    $ip = $_SERVER['HTTP_X_REAL_IP'];
  }
  return $ip;
}

以上がPHPでユーザーのIPアドレスを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。