1

最近我在google云容器集群中部署了一个网站,我相信实际的网站源代码是在集群自动创建的计算机引擎实例中运行的。

在网站中,我想记录访问者的访问信息,包括公共 IP 地址,例如 80.87.131.131。但是我发现我只能获取内部IP地址,比如10.128.0.3

这是我用来获取访问者 IP 的 PHP 函数。

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?我需要进行一些服务器端配置吗?任何帮助将不胜感激。并提前非常感谢。

4

1 回答 1

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。

于 2017-11-03T02:24:06.387 回答