📜  如何在PHP识别服务器 IP 地址?(1)

📅  最后修改于: 2023-12-03 15:08:56.293000             🧑  作者: Mango

如何在PHP识别服务器 IP 地址?

有时候在开发时需要获取服务器的IP地址,PHP提供了多种获取服务器IP地址的方式,本文将为大家介绍常用的三种方式。

1. 使用$_SERVER['SERVER_ADDR']获取服务器IP地址

$_SERVER['SERVER_ADDR']是一个预定义的变量,可以获取当前服务器的IP地址:

$server_ip = $_SERVER['SERVER_ADDR'];
echo $server_ip;

输出:

127.0.0.1

需要注意的是,$_SERVER['SERVER_ADDR']获取的是当前服务器的IP地址,如果有多个网卡,可能会返回不同的IP地址。

2. 使用gethostbyname()函数获取服务器IP地址

gethostbyname()函数可以通过主机名获取IP地址,我们可以将主机名设置为'localhost'或者服务器的域名,即可获取服务器的IP地址:

$server_ip = gethostbyname('localhost');
echo $server_ip;

输出:

127.0.0.1

需要注意的是,如果服务器的配置文件将主机名指向了其他IP地址,使用gethostbyname()函数可能会返回错误的IP地址。

3. 使用外部API获取服务器IP地址

最后一种获取服务器IP地址的方式是通过调用外部API获取,例如可以使用ipify提供的API获取当前服务器的IP地址:

$api_url = 'https://api.ipify.org?format=json';
$server_ip = json_decode(file_get_contents($api_url))->ip;
echo $server_ip;

输出:

123.45.67.89

需要注意的是,使用外部API获取IP地址可能会受网络状况影响,并且需要保证API的可用性。

以上就是三种常用的获取服务器IP地址的方式,可以根据自己的需要选择适合的方法。