프로그래밍 언어/PHP

PHP에서 클라이언트 IP 주소를 얻는 방법

Rateye 2021. 7. 30. 10:08
728x90
반응형
질문 : PHP에서 클라이언트 IP 주소를 얻는 방법

PHP를 사용하여 클라이언트 IP 주소를 얻으려면 어떻게해야합니까?

자신의 IP 주소를 통해 내 웹 사이트에 로그인 한 사용자의 기록을 유지하고 싶습니다.

답변

무엇을하든 클라이언트에서 보낸 데이터를 신뢰하지 않도록하십시오. $_SERVER['REMOTE_ADDR'] 에는 연결 당사자의 실제 IP 주소가 포함됩니다. 이것이 가장 신뢰할 수있는 가치입니다.

$_SERVER['HTTP_X_FORWARDED_FOR'] 설정했을 수있는 프록시 서버 뒤에있을 수 있지만이 값은 쉽게 스푸핑됩니다. 예를 들어 프록시가없는 사람이 설정하거나 IP가 프록시 뒤의 LAN에서 내부 IP가 될 수 있습니다.

즉, $_SERVER['HTTP_X_FORWARDED_FOR'] 저장하려는 경우 $_SERVER['REMOTE_ADDR'] 값도 저장해야합니다. 예를 들어 데이터베이스의 다른 필드에 두 값을 모두 저장합니다.

IP를 데이터베이스에 문자열로 저장하려면 최소 45 자 이상의 공간이 있는지 확인하십시오. IPv6 는 그대로 유지되며 해당 주소는 이전 IPv4 주소보다 큽니다.

(IPv6는 일반적으로 최대 39자를 사용하지만 IPv4 주소에 대한 특수 IPv6 표기법도 있습니다. 전체 형식은 최대 45 자일 수 있습니다. 따라서 수행중인 작업을 알고 있다면 39자를 사용할 수 있습니다. 설정하고 잊어 버리고 싶으면 45를 사용하십시오.)

출처 : https://stackoverflow.com/questions/3003145/how-to-get-the-client-ip-address-in-php
728x90
반응형