Невозможно получить публичный IP-адрес посетителя в экземпляре движка Google Cloud Compute (создан кластер контейнера)

Недавно я развернул веб-сайт в кластере облачных контейнеров Google и считаю, что исходный код самого веб-сайта выполняется внутри экземпляра механизма компьютера, который автоматически создается кластером.

На веб-сайте я хочу зарегистрировать информацию о доступе посетителя, включая публичный IP-адрес, например, 80.87.131.131. Но я обнаружил, что могу получить только внутренний IP-адрес, например 10.128.0.3

Вот функция PHP, которую я использовал для получения IP-адреса посетителя.

function get_ip()
{
$client  = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote  = $_SERVER['REMOTE_ADDR'];

if(filter_var($client, FILTER_VALIDATE_IP))
{
$ip = $client;
}
elseif(filter_var($forward, FILTER_VALIDATE_IP))
{
$ip = $forward;
}
else
{
$ip = $remote;
}

return $ip;
}

Есть ли способ получить публичный IP-адрес посетителя? Нужно ли делать какие-либо конфигурации на стороне сервера? Любая помощь будет оценена. И большое спасибо заранее.

1

Решение

Этот скрипт записывает IP-адрес посетителя в текстовом файле.

<?php
function scoate_ip(){
if (getenv('HTTP_X_FORWARDED_FOR')){
$ip=getenv('HTTP_X_FORWARDED_FOR');
} else {
$ip=getenv('REMOTE_ADDR');
}
return $ip;
}
$ip_trimis = scoate_ip();

$locatie = fopen("IP/IP.txt","a+");
fwrite ($locatie, "\n".$ip_trimis."\n");
fclose($locatie);
?>

Вы можете отредактировать его по своему желанию. $ip_trimis это IP-адрес посетителя.

0

Другие решения

Других решений пока нет …