一般可以有3个,通过ftp上传文件到服务器,ftp这个地址应该和服务器是同一个地址,一般情况下是这样的。
比如上传一个php文件,然后通过php文件检测服务器有几个地址,如果有cdn,可以看到有2个ip地址,外加,ftp的地址可以和服务器的地址不同,所以最少可以有3个ip地址,而且可以分别是不同地区的ip地址,
代码如下:
<?php
$server_ip = gethostbyname($_SERVER['SERVER_NAME']);
echo $server_ip . "\n"; // 更改为换行符以兼容更多环境
$server_addr = $_SERVER['SERVER_ADDR'];
$remote_addr = $_SERVER['REMOTE_ADDR'];
echo "Server Addr: " . $server_addr . "\n";
echo "Remote Addr: " . $remote_addr . "\n";
$api_url = 'https://api.ipify.org?format=json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 注意:在生产环境中不应关闭 SSL 验证
// 以下仅为示例,在理解风险的前提下进行
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 生产环境中应为true
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 验证主机名
$response = curl_exec($ch);
curl_close($ch);
if ($response !== false) {
$data = json_decode($response, true);
$user_ip = $data['ip'] ?? '';
echo "User IP via API: " . $user_ip . "\n";
} else {
echo "Failed to fetch data from API.\n";
}
?>