>  기사  >  백엔드 개발  >  Laravel에서 클라이언트 IP 주소를 정확하게 가져오는 방법은 무엇입니까?

Laravel에서 클라이언트 IP 주소를 정확하게 가져오는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-20 08:29:02194검색

How to Fetch the Client IP Address Precisely in Laravel?

Laravel: 클라이언트 IP 주소를 효과적으로 가져오기

Laravel의 프레임워크는 클라이언트의 IP 주소를 얻는 간단한 방법을 제공합니다. 그러나 특정 사용자는 서버의 IP 주소를 산출하는 데 불일치가 발생했습니다. 이 문제에 대한 해결책을 찾기 위해 적절한 방법을 탐색하고 기본 메커니즘을 자세히 살펴보겠습니다.

이상적인 접근 방식

Laravel은 다음과 같은 전용 기능을 제공합니다. ip() - 클라이언트의 IP 주소를 검색합니다. 이 방법은 신뢰할 수 있는 프록시를 처리하는 논리를 캡슐화하고 다양한 시나리오에서 정확한 검색을 보장합니다.

내부 구현

배후에서 Request::ip()는 getClientIps를 사용합니다. Symfony 요청 개체의 메서드입니다. 이 방법은 다음 헤더와 우선순위를 꼼꼼하게 구문 분석합니다.

  1. HEADER_FORWARDED
  2. HEADER_CLIENT_IP

신뢰할 수 있는 헤더가 둘 다 없으면 서버의 IP 주소 (REMOTE_ADDR)이 반환됩니다.

순위 기반 선택

getClientIps 메소드는 다음 기준을 고려하여 IP 주소 체인을 재구성합니다.

  • 모든 포트 번호 제거
  • 미리 구성된 설정을 기반으로 신뢰할 수 있는 프록시를 필터링합니다.

필터링된 체인의 첫 번째 IP 주소는 원본을 나타내는 클라이언트의 IP로 간주됩니다. 요청 소스.

불일치 해결

Request::ip()가 여전히 서버의 IP 주소를 반환하는 경우 다음 사항을 다시 확인하세요.

  • 신뢰할 수 있는 헤더 확인: 프록시 서버가 적절한 HEADER_FORWARDED 또는 HEADER_CLIENT_IP 헤더를 설정했는지 확인하세요.
  • 신뢰할 수 있는 프록시 목록 확인: app/Http/Middleware/TrustProxies.php 파일을 사용하여 프록시의 IP 주소가 신뢰할 수 있는 것으로 나열되도록 보장합니다.

이러한 권장 사항을 적용하면 Laravel에서 클라이언트의 IP 주소를 자신있게 얻을 수 있습니다. 정확한 위치 감지, 접근 제어 및 기타 IP 의존적 작업을 위해.

위 내용은 Laravel에서 클라이언트 IP 주소를 정확하게 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.