您的位置:首页 > 新闻资讯 >文章内容
代理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帮助你保护个人隐私。无论是网络爬虫、互联网营销、投票打榜都可以使用。


相关文章内容简介
推荐阅读
  • 31 2019-03
    怎么获得长期有效的http代理?

    一般是大家使用的代理都是动态ip,都是短效的代理,有效时间估计也就几分钟,久一点的也有半小时左右的,但这有效时间对于一些项目来说,还是太短了,那么怎么获得长期有效的http代理呢

  • 29 2019-04
    代理IP无效时会显示本地IP吗?

    代理IP无效时会显示本地IP吗?使用代理IP本来就是为了能隐藏好我们本地IP的,如果达不到这个目的,那就没有意义了。所以大家就会担心代理IP无效时会不会显示本地IP,结果是会还是不会呢?

  • 07 2019-09
    用代理IP刷阅读量

    如果我们想要通过一些技术手段来短时间快速增加文章的阅读量,我们可以通过什么方式去解决呢?每一个IP地址就可以增加一个阅读,如果手头上有大量的IP,那不就可以提高文章的阅读量了吗?

  • 22 2019-04
    长期可用的代理IP怎么这么难找?

    长期可用的代理IP怎么这么难找?是的,使用代理IP的人越来越多了,而优质的代理IP商家并不多。随现在游戏行业越来越为人们所认可,游戏工作室也相继伴随而生,同时一些问题也困扰着很多

  • 13 2019-07
    选择动态ip代理软件注意事项

    选择动态ip代理软件注意事项,有些人并不在意,这有什么讲究的?讲究和不讲究,其结果不一样的。随着科技发达以及技术革新,越来越多新奇古怪的软件已经走进人们的生活,尤其是在市场

  • 17 2019-04
    萌新能抓取到微博数据吗?编写Python爬虫要注意什么?

    萌新能抓取到微博数据吗?不管爬取什么数据,都是要使用一些工具辅助的,比如,在爬取之前,需要有一个靠谱的爬虫程序,自己写也行,或者去网上找教程找现成的程序也行,现在网上也有

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

大客户经理微信

微信公众号

微信公众号

回到顶部