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

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

(*-*)浩
リリース: 2023-02-24 13:58:02
オリジナル
12427 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート