zoukankan      html  css  js  c++  java
  • 获得用户的真实ip HTTP_X_FORWARDED_FOR

     

    工作中经常会有有获得用户真实ip的情况,HTTP_X_FORWARDED_FOR总是忘记,所以我这里记录下来吧.

    在PHP 中使用 [“REMOTE_ADDR”] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,如果要获取真正的ip就需要使用[‘HTTP_X_FORWARDED_FOR’].

    if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
    	$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }elseif($_SERVER['REMOTE_ADDR']!=''){
    	$ip = $_SERVER['REMOTE_ADDR'];
    }else{
    	return $_SERVER['HTTP_CLIENT_IP'];
    }
    

    以下引用 https://www.cnblogs.com/andhm/archive/2010/12/18/1910030.html
    1.REMOTE_ADDR:浏览当前页面的用户计算机的ip地址.
    2.HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关.
    3.HTTP_CLIENT_IP:客户端的ip.

    获取用户IP地址的三个属性的区别 (HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
    一、没有使用代理服务 器的情况:

    REMOTE_ADDR = 您的 IP
    HTTP_VIA = 没数值或不显示
    HTTP_X_FORWARDED_FOR = 没数值或不显示

    二、使用透明代理服务器的情 况:Transparent Proxies

    REMOTE_ADDR = 最后一个代理服务器 IP
    HTTP_VIA = 代理服务器 IP
    HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

    这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

    三、使用普通匿名代理服务器的情况:Anonymous Proxies

    REMOTE_ADDR = 最后一个代理服务器 IP
    HTTP_VIA = 代理服务器 IP
    HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

    隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

  • 相关阅读:
    Java设计模式——单例模式
    重新学习MyBatis-逆向工程
    重新学习MyBatis(六)
    重新学习MyBatis(五)
    重新学习Mybatis(四)
    重新学习MyBatis(三)
    重新学习Mybatis(二)
    Java设计模式重新出发
    回归问题常用的损失函数总结
    Matlab绘图局部放大
  • 原文地址:https://www.cnblogs.com/brady-wang/p/12028503.html
Copyright © 2011-2022 走看看