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

  • 相关阅读:
    pku2226 Muddy Fields
    pku3715 Blue and Red
    关于二分图的最大权匹配
    pku 2262&& pku 2739 && pku 3006
    pku2060 Taxi Cab Scheme
    pku 1486 Sorting Slides
    id、css命名规范
    Git 常用命令
    sublime text3插件使用
    Java实现数据结构栈stack和队列Queue
  • 原文地址:https://www.cnblogs.com/php-linux/p/12028503.html
Copyright © 2011-2022 走看看