ホームページ >バックエンド開発 >PHPチュートリアル >PHPでIPアドレスを取得する6つの方法

PHPでIPアドレスを取得する6つの方法

墨辰丷
墨辰丷オリジナル
2018-06-09 09:41:4666966ブラウズ

この記事では主に PHP で IP アドレスを取得する 6 つの方法を紹介します。興味のある方はぜひ参考にしてください。

おすすめマニュアル: php完全独学マニュアル

コード1:

function getip() {
  static $ip = '';
  $ip = $_SERVER['REMOTE_ADDR'];
  if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {
    $ip = $_SERVER['HTTP_CDN_SRC_IP'];
  } 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_X_FORWARDED_FOR']) AND 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;
      }
    }
  }
  return $ip;
}
おすすめ関連記事:
1.phpでユーザーのIPアドレスを取得する方法
2.php はどのようにしてクライアントの IP アドレスを取得しますか?
関連ビデオの推奨:
1.Dugu Jiijian (4)_PHP ビデオ チュートリアル

コード 2:

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?>

方法 3:

<?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?>

方法 4:

<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP
?>

方法 5:

<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
 $ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])){
 $ips = explode (", ", $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]);
 if($ip){
  array_unshift($ips, $ip); $ip = FALSE;
 }
 for($i = 0; $i < count($ips); $i++){
  if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
  $ip = $ips[$i];
  break;
  }
 }
}
return($ip ? $ip : $_SERVER[&#39;REMOTE_ADDR&#39;]);
}
echo get_real_ip();
?>

方法 6:

<?php
if(getenv(&#39;HTTP_CLIENT_IP&#39;)){
$onlineip = getenv(&#39;HTTP_CLIENT_IP&#39;);
}
elseif(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;)){
$onlineip = getenv(&#39;HTTP_X_FORWARDED_FOR&#39;);
}
elseif(getenv(&#39;REMOTE_ADDR&#39;)){
$onlineip = getenv(&#39;REMOTE_ADDR&#39;);
}
else{
$onlineip = $HTTP_SERVER_VARS[&#39;REMOTE_ADDR&#39;];
}
echo $onlineip;
?>

概要: 以上がこの記事の全内容となりますが、皆様の学習のお役に立てれば幸いです。

関連する推奨事項:

php 文字列変換スキル

指定されたサフィックス ファイルの PHP 実装バッチ アップロード機能

デジタル金額を中国資本金額に変換するphp関数

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

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