获得用户的真实IP地址

来源:互联网 发布:cad制图软件 编辑:程序博客网 时间:2024/04/30 08:20
<?php /** * 获得用户的真实IP地址 * * @return  string */function real_ip(){    static $realip = NULL;     if ($realip !== NULL){        return $realip;    }     if (isset($_SERVER)){        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);            /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */            foreach ($arr AS $ip){                $ip = trim($ip);                 if ($ip != 'unknown'){                    $realip = $ip;                     break;                }            }        }        elseif (isset($_SERVER['HTTP_CLIENT_IP'])){            $realip = $_SERVER['HTTP_CLIENT_IP'];        }        else{            if (isset($_SERVER['REMOTE_ADDR'])){                $realip = $_SERVER['REMOTE_ADDR'];            }            else{                $realip = '0.0.0.0';            }        }    }    else{        if (getenv('HTTP_X_FORWARDED_FOR')){            $realip = getenv('HTTP_X_FORWARDED_FOR');        }        elseif (getenv('HTTP_CLIENT_IP')){            $realip = getenv('HTTP_CLIENT_IP');        }        else{            $realip = getenv('REMOTE_ADDR');        }    }     preg_match("/[\d\.]{7,15}/", $realip, $onlineip);    $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';     return $realip;}?>

原创粉丝点击