查看: 156|回复: 2

PHP最可靠的获取服务端IP方法

[复制链接]

4

主题

7

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2022-9-20 08:19:10 | 显示全部楼层 |阅读模式
最近在获取服务器端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

已验证,安全可靠;

  • 无关域名是否解析
  • 兼容cli模式
/**
* 获取服务端IP
*/
function getServerIP(){
    // 兼容获取CLI方式下服务器IP, 注意云主机有可能只能获取到内网IP
    return getHostByName(getHostName());
}
回复

使用道具 举报

3

主题

10

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2025-1-25 00:27:01 | 显示全部楼层
我也来顶一下..
回复

使用道具 举报

6

主题

12

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 6 天前 | 显示全部楼层
嘘,低调。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表