클라우드 서버는 $_SERVER['REMOTE_ADDR'] 사용 못하나요?
본문
접속고객의 IP를 확인하는 $_SERVER['REMOTE_ADDR'] 명령어가
클라우드서버에서는 사용이 불가능한가요?
최근 가비아 클라우드를 사용하게 되었는데
<?php echo $_SERVER['REMOTE_ADDR']; ?> 를 찍으니까
10.7.2.10 이렇게 사설아이피가 표시되더군요.
이것이 클라우드 서비스를 받는 경우에는 어쩔수 없이 받아 들여야 하는 건가요?
아니면 클라우드 제공사의 기술 또는 정책으로 인한 건가요?
혹시 클라우드 서비스를 받고 있다면 여러분의 클라우드 서버에서는 어떻게 표시되나요?
내 아이피가 표시되나요? 아니면 클라우드 서버의 사설아이피가 보이나요?
답변 4
가비아, 네이버 클라우드
정상적으로 출력됩니다.
$ip = isset($_SERVER['HTTP_CLIENT_IP'])?$_SERVER['HTTP_CLIENT_IP']:isset($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$_SERVER['REMOTE_ADDR'];
프록시 서버와 연관이 있는 것 같은데, 관련 자료 찾아보시기 바랍니다.
!-->보통 클라우드 서버를 사용하거나
프록시 서버를 사용하는 환경
두개가 중첩되는 환경에서는
[클라이언트] - [gateway/공유기] - [DNS]-------[DNS]----[Proxy / 서버] -- [ cloud server ]
이런 접근들이 되는 구조라는걸 염두하시면 고민을 덜하실겁니다.
클라이언트가 여러단계로 인식되기때문에 '잉끼s'님의 방식으로 접근해야 합니다.
CDN 두개 겹치니까 위 방식으로 해도 IP가 두개뜨는 경우도 있더군요..
그런 경우엔 어떻게하는지 궁금하네요
답변을 작성하시기 전에 로그인 해주세요.