ホームページ  >  記事  >  バックエンド開発  >  クライアントIPとサーバーIPを取得するPHPメソッド

クライアントIPとサーバーIPを取得するPHPメソッド

WBOY
WBOYオリジナル
2016-06-20 13:00:511914ブラウズ

クライアント IP とサーバー IP を取得するための PHP メソッド

クライアント IP 関連の変数
1. $_SERVER['REMOTE_ADDR']; クライアント IP。これはユーザーの IP またはプロキシの IP です。
2. $_SERVER['HTTP_CLIENT_IP']; エージェントの IP は存在する可能性があり、偽造される可能性があります。
3. $_SERVER['HTTP_X_FORWARDED_FOR']; ユーザーがプロキシとして使用する IP は存在する可能性があり、偽造される可能性があります。

サーバー側 IP 関連の変数
1. $_SERVER["SERVER_NAME"] は、関数 gethostbyname() を使用して取得する必要があります。この変数はサーバー側とクライアント側の両方で正しく表示されます。
2. $_SERVER["SERVER_ADDR"]、サーバー側でテスト: 127.0.0.1 (これは httpd.conf の BindAddress の設定値に関連します)。クライアントでのテスト結果は正しいです。

カテゴリは次のとおりです:

class getIP{
function clientIP(){
$cIP = getenv('REMOTE_ADDR');
$cIP1 = getenv('HTTP_X_FORWARDED_FOR');
$cIP2 = getenv('HTTP_CLIENT_IP');
$cIP1 ? $cIP = $cIP1 : null;
$cIP2 ? $cIP = $cIP2 : null;
return $cIP;
 }
function serverIP(){
return gethostbyname($_SERVER["SERVER_NAME"]);
 }
}

$getIP  = new getIP();
$clientIp = getIP::clientIP();
$serverIp = getIP::serverIP();

echo 'Client IP is ',$clientIp,'<br />';
echo 'Server IP is ',$serverIp,'<br />';

function GetIP() {
$ip = $_SERVER['REMOTE_ADDR'];
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
return $ip;
}

function GetIP__(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return($ip);
}

echo GetIP();


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