您的位置:首页 > 新闻资讯 >文章内容
代理IP分享PHP获得IP地址的方式
来源:互联网 作者:admin 时间:2019-10-03 10:46:00

  IP是我们在网络上的身份认证,代理IP的出现,让IP获取不再复杂,我们现在可以通过购买代理服务商的业务,来开展各项工作。机灵代理以下分享PHP获取IP地址的方法:


代理IP分享PHP获得IP地址的方式


  /**

  * 获取客户端IP地址

  * <br />来源:ThinkPHP

  * <br />"X-FORWARDED-FOR" 是代理服务器通过 HTTP Headers 提供的客户端IP。代理服务器可以伪造任何IP。

  * <br />要防止伪造,不要读这个IP即可(同时告诉用户不要用HTTP 代理)。

  * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字

  * @param boolean $adv 是否进行高级模式获取(有可能被伪装)

  * @return mixed

  */

  function get_client_ip($type = 0, $adv = false) {

  $type = $type ? 1 : 0;

  static $ip = NULL;

  if ($ip !== NULL)

  return $ip[$type];

  if ($adv) {

  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

  $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

  $pos = array_search('unknown', $arr);

  if (false !== $pos)

  unset($arr[$pos]);

  $ip = trim($arr[0]);

  }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {

  $ip = $_SERVER['HTTP_CLIENT_IP'];

  } elseif (isset($_SERVER['REMOTE_ADDR'])) {

  $ip = $_SERVER['REMOTE_ADDR'];

  }

  } elseif (isset($_SERVER['REMOTE_ADDR'])) {

  $ip = $_SERVER['REMOTE_ADDR'];

  }

  // IP地址合法验证, 防止通过IP注入攻击

  $long = sprintf("%u", ip2long($ip));

  $ip = $long ? array($ip, $long) : array('0.0.0.0', 0);

  return $ip[$type];

  }

  /**

  * 获得用户的真实IP地址

  * <br />来源:ecshop

  * <br />$_SERVER和getenv的区别,getenv不支持IIS的isapi方式运行的php

  * @access public

  * @return string

  */

  function real_ip() {

  static $realip = NULL;

  if ($realip !== NULL) {

  return $realip;

  }

  if (isset($_SERVER)) {

  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

  $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

  /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */

  foreach ($arr AS $ip) {

  $ip = trim($ip);

  if ($ip != 'unknown') {

  $realip = $ip;

  break;

  }

  }

  } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {

  $realip = $_SERVER['HTTP_CLIENT_IP'];

  } else {

  if (isset($_SERVER['REMOTE_ADDR'])) {

  $realip = $_SERVER['REMOTE_ADDR'];

  } else {

  $realip = '0.0.0.0';

  }

  }

  } else {

  if (getenv('HTTP_X_FORWARDED_FOR')) {

  $realip = getenv('HTTP_X_FORWARDED_FOR');

  } elseif (getenv('HTTP_CLIENT_IP')) {

  $realip = getenv('HTTP_CLIENT_IP');

  } else {

  $realip = getenv('REMOTE_ADDR');

  }

  }

  // 使用正则验证IP地址的有效性,防止伪造IP地址进行SQL注入攻击

  preg_match("/[\d\.]{7,15}/", $realip, $onlineip);

  $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';

  return $realip;

  }


  以上是PHP获得IP的方式具体代码分享。关注机灵代理,学习更多IP以及大数据知识,自建200+机房,数万拨号线路,提供企业级HTTP代理服务,IP覆盖全国200+城市,高匿名代理IP帮助你保护个人隐私。无论是网络爬虫、互联网营销、投票打榜都可以使用。


相关文章内容简介
推荐阅读
  • 15 2019-01
    网络爬虫为什么被封了?

    网络爬虫通常用于搜索引擎中,都是非常受欢迎的,但有时候网络爬虫为什么被封了?网络爬虫被封,主要是因为企业使用网络爬虫来采集大量的数据,对方网站为了维护网站的正常运转,都会

  • 29 2019-10
    HTTP代理服务的好处

    我们访问互联网,是通过输入网站的网址开始的。输入正确的网址之后,就能够跳转到我们想要去的网战。"www"开头的网站使用的协议就是HTTP协议,它是网络中最普遍最常见的网络通信方式。今

  • 20 2019-08
    用代理IP在网络营销发挥重大作用

    代理IP在网络营销的不同场景都发挥着重大作用,以下场景都可以利用代理IP进行网络营销:

  • 18 2019-10
    6招解决爬虫IP被封

    爬虫的时候,我们不可避免的会碰到IP被锁的情况,这是一场博弈。机智的爬虫工程师会使用怎么样的方法来解决IP受到限制的情况呢?

  • 05 2019-12
    用CURL命令测试代理IP

    我们在代理IP网站购买的相应的IP服务之后,这些代理IP是需要经过授权然后才可以使用的,这是处于对每一个用户的IP使用质量的保障,不同代理IP网站有对应的授权方式,比如绑定终端或者是

  • 12 2019-11
    全面认识HTTP报文语法

    HTTP的报文语法是什么?可以分为多少种类型?下面由机灵代理来给大家全方面介绍HTTP报文的语法知识。

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部