|
最近在获取服务器端IP遇到一些问题
- 问题1: 获取不到云主机外网IP,这个没办法你可能配置里写内网IP了
- 问题2: CLI模式下取不到服务IP
我验证了以下获取服务器IP的方式
方式1
$serverIP = $_SERVER['SERVER_ADDR'];
HTTP请求可以获取, 但CLI不行
方式2
$serverIP = getenv('SERVER_ADDR');
问题同上
方式3
$serverIP = gethostbyname($_SERVER["SERVER_NAME"])
这个是我起初的方案, 但最近发现如果域名未解析的话,它直接返回域名,获取不到IP
方式4
已验证,安全可靠;
/**
* 获取服务端IP
*/
function getServerIP(){
// 兼容获取CLI方式下服务器IP, 注意云主机有可能只能获取到内网IP
return getHostByName(getHostName());
} |
|