Sac*_*dra 4 php ip-address fetch
在PHP中获取IP地址的更好方法是什么:
getenv('REMOTE_ADDR');
Run Code Online (Sandbox Code Playgroud)
要么,
$_SERVER['REMOTE_ADDR'];
Run Code Online (Sandbox Code Playgroud)
请告诉我两者之间的区别,如果有的话.
Bjö*_*örn 11
$ _SERVER是一个内置的PHP变量,而getenv()向环境(可能是Apache/IIS)询问值.
获得IP的最佳方式是:
$ip = (!empty($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : getenv('REMOTE_ADDR');
Run Code Online (Sandbox Code Playgroud)
但我怀疑这两个变量之间有什么区别......嗯.
getenv() 可用于访问任何环境变量(PHP 只是将 REMOTE_ADDR 注册为脚本的环境变量),而使用 $_SERVER 显然只能访问 $_SERVER 超全局的内容。
常见的方法是使用 $_SERVER 来实现此目的,尽管它在功能上并没有真正产生区别。