• php获取客户端IP地址的几种方法(转)


    [php] view plain copy
    php获取客户端IP地址的几种方法  
      
      
    方法一         
    <?php  
    $iipp=$_SERVER["REMOTE_ADDR"];  
    echo $iipp;  
    ?>  
      
      
    方法二  
      
    <?php   
    function get_real_ip(){  
    $ip=false;  
    if(!empty($_SERVER["HTTP_CLIENT_IP"])){  
    $ip = $_SERVER["HTTP_CLIENT_IP"];  
    }  
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {  
    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);  
    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }  
    for ($i = 0; $i < count($ips); $i++) {  
    if (!eregi ("^(10|172.16|192.168).", $ips[$i])) {  
    $ip = $ips[$i];  
    break;  
    }  
    }  
    }  
    return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);  
    }  
      
      
    echo get_real_ip();  
    ?>  
      
      
      
    方法三  
    <?php  
    function getIP()  
    {  
    if (@$_SERVER["HTTP_X_FORWARDED_FOR"])  
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];  
    else if (@$_SERVER["HTTP_CLIENT_IP"])  
    $ip = $_SERVER["HTTP_CLIENT_IP"];  
    else if (@$_SERVER["REMOTE_ADDR"])  
    $ip = $_SERVER["REMOTE_ADDR"];  
    else if (@getenv("HTTP_X_FORWARDED_FOR"))  
    $ip = getenv("HTTP_X_FORWARDED_FOR");  
    else if (@getenv("HTTP_CLIENT_IP"))  
    $ip = getenv("HTTP_CLIENT_IP");  
    else if (@getenv("REMOTE_ADDR"))  
    $ip = getenv("REMOTE_ADDR");  
    else  
    $ip = "Unknown";  
    return $ip;  
    }  
      
      
    echo getip();  
    ?>  
      
      
      
      
      
      
    1:来看看代码:  
      
      
      echo "(1)浏览当前页面的用户的 IP 地址为:";  
      
      
      echo $_SERVER['REMOTE_ADDR'];  
      
      
      echo "";  
      
      
      echo "(2)浏览当前页面的用户的 IP 地址为:";  
      
      
      echo getenv('REMOTE_ADDR');  
      
      
      echo "";  
      
      
      echo "主机 www.baidu.com 的 IP 地址为:";  
      
      
      echo gethostbyname(www.baidu.com);  
      
      
    2:它的输出结果为:  
      
      
      (1)浏览当前页面的用户的 IP 地址为:127.0.0.1  
      
      
      (2)浏览当前页面的用户的 IP 地址为:127.0.0.1  
      
      
      主机 www.baidu.com 的 IP 地址为:61.135.169.105  
      
      
    3:关于获取客户端的 IP 地址,有俩方法:  
      
      
      第一个是使用:  
      
      
      $_SERVER['REMOTE_ADDR']  
      
      
      它正在浏览当前页面用户的 IP 地址,这里的输出结果为 127.0.0.1,因为这是在本地测试,输  
      
      
    出的是本地的IP地址。  
      
      
      第二个是使用:  
      
      
      getenv('REMOTE_ADDR')  
      
      
      这里使用了函数 getenv : Gets the value of an environment variable(得到各种环境变量的  
      
      
    值),返回值:Returns the value of the environment variable varname, or FALSE on an   
      
      
    error(失败的话返回 FALSE).  
      
      
    4:关于获取服务器端的 IP 地址:  
      
      
      gethostbyname("www.baidu.com");  
      
      
      这里使用了函数 gethostbyname : Get the IP address corresponding to a given Internet   
      
      
    host name(通过给定的一个主机名字而得到它的 IP 地址),返回值:Returns the IP address of   
      
      
    the Internet host specified by hostname or a string containing the unmodified hostname   
      
      
    on failure(失败的话返回原样的输入字符主机名).  
      
      
    5:注意:如果失败的话,它会将原样输出,  
    例如:    
    echo "无效主机 iwilldown 的 IP 地址为:";    
    echo gethostbyname("iwilldown");    
    输出无效主机 iwilldown 的 IP 地址为:iwilldown  当然,这个可不是 IP 地址。 
    

      

  • 相关阅读:
    T Fiddler 教程 _转
    领域模型驱动设计(Domain Driven Design)入门概述 -----DDD 解释
    VS清除打开项目时的TFS版本控制提示
    C#设计模式_转
    CentOS6.5菜鸟之旅:安装Realtek无线网卡驱动
    CentOS6.5菜鸟之旅:安装输入法(小呀小企鹅)
    CentOS6.5菜鸟之旅:U盘安装CentOS64位
    JS魔法堂:属性、特性,傻傻分不清楚
    .Net魔法堂:发个带附件的邮件
    JS魔法堂:那些困扰你的DOM集合类型
  • 原文地址:https://www.cnblogs.com/bluealine/p/8037332.html
Copyright © 2020-2023  润新知