网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

PHP怎么获取访问者真实IP

本篇内容主要讲解“PHP怎么获取访问者真实IP”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP怎么获取访问者真实IP”吧!

成都创新互联是一家专注于网站建设、成都网站设计与策划设计,乌鲁木齐网站建设哪家好?成都创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:乌鲁木齐等地区。乌鲁木齐做网站价格咨询:18982081108

在没有开代理服务器的情况下,直接使用:

$ip = $_SERVER["REMOTE_ADDR"];

如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址 ,反之就是真实IP;

下面是通用的一种写法,都能获取到:

要想透过代理服务器取得客户端的真实 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 来读取。
但是如果客户端没有通过代理服务器来访问,那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值将是空的。

function getIP()
{
  static $realip;
  if (isset($_SERVER)){
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
      $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
      $realip = $_SERVER["HTTP_CLIENT_IP"];
    } else {
      $realip = $_SERVER["REMOTE_ADDR"];
    }
  } else {
    if (getenv("HTTP_X_FORWARDED_FOR")){
      $realip = getenv("HTTP_X_FORWARDED_FOR");
    } else if (getenv("HTTP_CLIENT_IP")) {
      $realip = getenv("HTTP_CLIENT_IP");
    } else {
      $realip = getenv("REMOTE_ADDR");
    } 
  }
  return $realip;
}

注意:

$_SERVER和getenv的区别,getenv不支持IIS的isapi方式运行的php
getenv(“REMOTE_ADDR”)函数在 apache下能正常获取ip地址,而在iis中没有作用,而$_SERVER['REMOTE_ADDR']函数,既可在apache中成功获取访客的ip地址,在iis下也同样有效

另外根据ip地址,可以实现类似限制IP访问的防刷机制;

php验证邮箱,代码如下:

$email = 'fengdingbo@gmail.com';             
$result = filter_var($email, FILTER_VALIDATE_EMAIL); 
var_dump($result); // string(20) "fengdingbo@gmail.com" 

php验证url地址,代码如下:

$url = "https://www.jb51.net"; 
$result = filter_var($url, FILTER_VALIDATE_URL); 
var_dump($result); // string(25) "https://www.jb51.net" 

php验证ip地址,代码如下:

$url = "192.168.1.110"; 
$result = filter_var($url, FILTER_VALIDATE_IP); 
var_dump($result); // string(13) "192.168.1.110" 
// 该方法也可以用来验证ipv6。 
$url = "2001:DB8:2de::e13";              
$result = filter_var($url, FILTER_VALIDATE_IP); 
var_dump($result); // string(17) "2001:DB8:2de::e13"
public static function isEmail( $email ) 
{ 
return preg_match("/^([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,4}([\.][a-z]{2})?$/i" , $email ); 
} 
public static function isNumber( $num ) 
{ 
return is_numeric( $num ); 
} 
public static function isUrl( $url , $preg = false ) 
{ 
if( $preg ) 
{ 
$status = preg_match ( "/^([^:\/\/])+\:\/\/[\w-]+\.[\w-.\?\/]+$/" , $url ); 
} 
else
{ 
$status = filter_var( $url , FILTER_VALIDATE_URL ); 
} 
return $status; 
}

到此,相信大家对“PHP怎么获取访问者真实IP”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文名称:PHP怎么获取访问者真实IP
分享地址:http://bjjierui.cn/article/pgepds.html

其他资讯