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,但是向访问对象透露了您是使用代理服务器访问他们的。

  • 相关阅读:
    H.264编码之DCT变换原理
    颜色空间转换
    jdbc 大数据存储 图片读取
    spring 事务配置
    Cglib代理
    jdk代理
    spring装配bean
    map 常用方法
    list map set常用方法之list
    calendar 类 用法
  • 原文地址:https://www.cnblogs.com/php-linux/p/12028503.html
Copyright © 2011-2022 走看看