이 기사의 예에서는 PHP를 사용하여 서버 IP 주소를 정확하게 얻는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
PHP에서는 일반적으로 $_SERVER['HTTP_HOST']를 사용하여 URL에 있는 웹사이트의 도메인 이름이나 IP 주소를 얻습니다.
php 매뉴얼의 설명은 다음과 같습니다.
"HTTP_HOST"
호스트 내용: 현재 요청의 헤더입니다.
일반적으로 말하면, 이 방법으로는 어떤 문제도 발생하지 않습니다. PFC3 및 FLEA와 같은 일부 일반적인 PHP 프레임워크도 이 사전 정의된 변수를 기반으로 합니다.
그런데 최근 제가 진행하고 있던 프로젝트에서 테스트를 위해 프로그램을 고객에게 넘겨줬을 때 항상 프로그램 점프가 잘못되는 것을 발견했습니다.
마지막으로 이유를 알아보세요. 고객 환경에서 $_SERVER['HTTP_HOST']로 얻은 값은 항상 LAN에 있는 프로그램이 있는 서버의 IP 값입니다.
이유는 고객의 회사가 서버를 통해 인터넷에 연결되어 있고, 우리 프로그램이 위치한 서버가 도메인 이름을 통해 매핑되어 있기 때문입니다. 즉, 중간에 "프록시" 프로세스가 있기 때문입니다.
따라서 이러한 환경에서 $_SERVER['HTTP_HOST']로 얻은 값은 항상 프로그램이 LAN에 있는 서버의 IP 값입니다.
마지막으로 많은 정보를 확인한 결과 Symfony 프레임워크에서 대체 구현 방법을 찾았습니다.
코드