PHP获得真正的IP(代理检测)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP获得真正的IP(代理检测)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我确实跟踪了用户的“真实”IP,如果他有一个代理发送真实ip标题是否有更好的解决方案,甚至更多的标题

由于此函数在脚本中经常使用,因此它必须非常快,并且它似乎不在那个星座中:/

我提出了一些建议,但无法实现:

>将标题放在顺序中,最常用的是“在野外”,使函数快速完成
>使IP的PRe_match检测更快

===

function get_real_ip()
{
  $Proxy_headers = array(
                          'CLIENT_IP','FORWARDED','FORWARDED_FOR','FORWARDED_FOR_IP','HTTP_CLIENT_IP','HTTP_FORWARDED','HTTP_FORWARDED_FOR','HTTP_FORWARDED_FOR_IP','HTTP_PC_REMOTE_ADDR','HTTP_PROXY_CONNECTION','HTTP_VIA','HTTP_X_FORWARDED','HTTP_X_FORWARDED_FOR','HTTP_X_FORWARDED_FOR_IP','HTTP_X_IMFORWArds','HTTP_XROXY_CONNECTION','VIA','X_FORWARDED','X_FORWARDED_FOR'
                         );

  foreach($proxy_headers as $proxy_header)
  {
    if(isset($_SERVER[$proxy_header]) && preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/",$_SERVER[$proxy_header])) /* HEADER ist gesetzt und dies ist eine gültige IP */
    {
        return $_SERVER[$proxy_header];
    }
    else if(stristr(',',$_SERVER[$proxy_header]) !== FALSE) /* Behandle mehrere IPs in einer Anfrage(z.B.: X-Forwarded-For: client1,proxy1,proxy2) */
    {
      $proxy_header_temp = trim(array_shift(explode(',$_SERVER[$proxy_header]))); /* Teile in einzelne IPs,gib die letzte zurück und entferne Leerzeichen */

      if(($pos_temp = strIPOs($proxy_header_temp,':')) !== FALSE) $proxy_header_temp = substr($proxy_header_temp,$pos_temp); /* Entferne den Port */

      if(preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/",$proxy_header_temp) return $proxy_header_temp;
    }
  }

  return $_SERVER['REMOTE_ADDR'];
}
如果代理发送标头,则可以获取客户端的原始IP.如果代理没有,那么你不能.
不幸的是(或者幸运的是,取决于你的观点),就这么简单.

我在内联网上做的是在网络服务器上将“intranet.mydomain.COM重定向到“intranet”,由于内部网络/ DNS配置,后者不使用代理…不知道你想要什么要做,但这可能有用.

您还可以在浏览器中设置排除列表…

脚本宝典总结

以上是脚本宝典为你收集整理的PHP获得真正的IP(代理检测)全部内容,希望文章能够帮你解决PHP获得真正的IP(代理检测)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。