为什么getenv('REMOTE_ADDR')给我一个空白的IP地址?

Zac*_*son 0 php ip-address

这个PHP代码......

207    if (getenv(HTTP_X_FORWARDED_FOR)) {
208        $ip   = getenv('HTTP_X_FORWARD_FOR');
209        $host = gethostbyaddr($ip);
210    } else {
211        $ip   = getenv('REMOTE_ADDR');
212        $host = gethostbyaddr($ip);
213    }
Run Code Online (Sandbox Code Playgroud)

抛出这个警告......

警告: gethostbyaddr()[function.gethostbyaddr]:第212行的C:\ inetpub ...\filename.php中的地址不是abcd格式

似乎$ ip是空白的.

小智 11

在php.net上它说如下:

getenv如果您的服务器API是ASAPI(IIS),则该功能不起作用.所以,尽量不要使用getenv('REMOTE_ADDR'),但是$_SERVER["REMOTE_ADDR"].

你可能尝试过$_SERVER吗?