zoukankan      html  css  js  c++  java
  • getenv()

    获得客户端IP

    getenv -- Gets the value of an environment variable, string getenv ( string varname ), Returns the value of the environment variable varname, or FALSE on an error.
    
    1
    <?php
    2
      // Example use of getenv()
    3
      $ip = getenv('REMOTE_ADDR');
    4
      // Or simply use a Superglobal ($_SERVER or $_ENV)
    5
      $ip = $_SERVER['REMOTE_ADDR'];
    6
    ?>
    这是在PHP官方的manual提供的方法。
    
    但是当Web服务器API是ASAPI (IIS)的时候,getenv函数是不起作用的。这种情况下你如果用getenv来取得用户客户端ip的话,得到的将是错误的ip地址。
    
    因此更为安全和准确的方法是尽量避免使用getenv函数。比如可以用以下的函数来获取ip信息:
    
    程序代码
    
    view sourceprint?
    01
    <?php
    02
        function GetIP(){
    03
            if (getenv("HTTP_CLIENT_IP")
    04
                && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
    05
               $ip = getenv("HTTP_CLIENT_IP");
    06
            else if (getenv("HTTP_X_FORWARDED_FOR")
    07
                && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
    08
               $ip = getenv("HTTP_X_FORWARDED_FOR");
    09
            else if (getenv("REMOTE_ADDR")
    10
                && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
    11
               $ip = getenv("REMOTE_ADDR");
    12
            else if (isset($_SERVER['REMOTE_ADDR'])
    13
                && $_SERVER['REMOTE_ADDR']
    14
                && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
    15
               $ip = $_SERVER['REMOTE_ADDR'];
    16
            else
    17
               $ip = "unknown";
    18
            return($ip);
    19
        }
    20
        $ip = GetIP();
    21
        echo $ip;
    22
    ?>
  • 相关阅读:
    form 组件
    Django相关
    python日常总结
    django Form 表单 总结与小实例
    django Form验证
    Django ORM OneToOneField
    display:inline与display:block——行内元素显示与块级元素显示
    HTML5之概述
    <a>标签的href属性
    php安全性问题
  • 原文地址:https://www.cnblogs.com/fyy-888/p/5381879.html
Copyright © 2011-2022 走看看