最近我在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?我需要做一些服务器端的配置吗?任何帮助都将不胜感激。在此之前,非常感谢。
发布于 2017-11-03 10:24:06
此脚本将访问者的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。
https://stackoverflow.com/questions/47086795
复制相似问题