PHP中获取IP的方法

简介:

PHP获取客户端 真实IP地址多种方法  

复制代码
<?php
//经过复杂的判断与算是的获取IP地址函数
 function getIP() {
        if (getenv(HTTP_CLIENT_IP)) {
                        $ip = getenv(HTTP_CLIENT_IP); 
                }
                elseif (getenv(HTTP_X_FORWARDED_FOR)) {
                        $ip = getenv(HTTP_X_FORWARDED_FOR);
                }
                elseif (getenv(HTTP_X_FORWARDED)) { 
                        $ip = getenv(HTTP_X_FORWARDED);
                }
                elseif (getenv(HTTP_FORWARDED_FOR)) {
                        $ip = getenv(HTTP_FORWARDED_FOR);
                }
                elseif (getenv(HTTP_FORWARDED)) {
                        $ip = getenv(HTTP_FORWARDED);
                }
                else {
                        $ip = $_SERVER[REMOTE_ADDR];
                }
                return $ip;
 }
 echo '<br>1---'.getIP();
 //最简单获取ip地址代码一句实例
 
 $reIP=$_SERVER["REMOTE_ADDR"];
 echo '<br>2---'.$reIP;
 
 //
 
 //php教程获取ip的算法
  if(getenv(HTTP_CLIENT_IP)) { 
  $onlineip = getenv(HTTP_CLIENT_IP);
  } elseif(getenv(HTTP_X_FORWARDED_FOR)) { 
  $onlineip = getenv(HTTP_X_FORWARDED_FOR);
  } elseif(getenv(REMOTE_ADDR)) { 
  $onlineip = getenv(REMOTE_ADDR);
  } else { 
  $onlineip = $HTTP_SERVER_VARS[REMOTE_ADDR];
  }
  echo '<br>3---'.$onlineip;
  //可以分出内网与外网站ip地址获取程序
 
 function getip_out(){
 $ip=false;
 if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  $ip = $_SERVER["HTTP_CLIENT_IP"];
 }
 if (!empty($_SERVER[HTTP_X_FORWARDED_FOR])) {
  $ips教程 = explode (", ", $_SERVER[HTTP_X_FORWARDED_FOR]);
  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[REMOTE_ADDR]);
 }
 
 echo '<br>4---'.getip_out();
 
 //php获取ip的算法,用了?号表达式来处理 
 
  $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
  $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; 
  echo '<br>5---'.$user_IP;
?>
复制代码

 本文转自cococo点点博客园博客,原文链接:http://www.cnblogs.com/coder2012/archive/2013/03/24/2978504.html,如需转载请自行联系原作者

相关文章
|
15天前
|
数据采集 监控 API
使用PHP实现动态代理IP的功能
使用PHP实现动态代理IP的功能
|
10月前
|
PHP
PHP 代理
PHP 代理
|
12月前
|
PHP
PHP中获取来访者IP的方法
PHP中获取来访者IP的方法
151 0
|
PHP
php获取客户端ip
php获取客户端ip
61 0
|
PHP
php pecl设置代理,php pear设置代理
php pecl设置代理,php pear设置代理
266 0
|
PHP
PHP 301重定向
PHP 301重定向
47 0
PHP: ThinkPHP获取客户端IP地址
PHP: ThinkPHP获取客户端IP地址
433 0
|
PHP
【PHP】获取ip信息,并做限制
【PHP】获取ip信息,并做限制
97 0
|
PHP Windows
外网访问内网php-fpm
本地安装了一个php-fpm,只能在局域网内访问,怎样从外网也能访问到本地的php-fpm呢?本文将介绍具体的实现步骤。 1. 准备工作 1.1 安装并启动php-fpm 默认安装的php-fpm端口是9000。
1464 0
|
应用服务中间件 PHP nginx
NGINX配置PHP解析
location ~ \.php$ { root html; fastcgi_pass 127.
1200 0