최근에 Google Cloud Container 클러스터에 웹 사이트를 배포했으며 실제 웹 사이트 소스 코드가 클러스터에 의해 생성 된 컴퓨터 엔진 인스턴스 내에서 실행됩니다. 자동으로Google Cloud Compute 엔진 인스턴스 (컨테이너 클러스터 생성)에서 방문자의 공용 IP를 가져올 수 없음
웹 사이트에서 공개 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를 얻는 방법은 있습니까? 서버 측 구성을 일부 변경해야합니까? 어떤 도움을 주시면 감사하겠습니다. 그리고 대단히 감사드립니다.
그럼, 어떻게 작동합니까? –
일반적으로 위 기능이 작동하지만 Google Cloud (kubernetes) 클러스터 포드에서는 10.100.xxx.xxx와 같은 내부 IP 만 반환합니다. Google Cloud에는 클러스터 포드에 대한 특별한 구성이있을 수 있습니다. 더 많은 연구를 할 시간이 없었고 JS로 전환하여 기능을 완료했습니다. 자세한 내용은 첫 번째 답변에 대한 내 의견을 참조하십시오. – Charles