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
반응형
'프로그래밍 언어 > PHP' 카테고리의 다른 글
PHP 메일 기능이 이메일 전송을 완료하지 못할 경우 체크할 사항들 (0) | 2021.08.03 |
---|---|
PHP 에서 자주 쓰이는 기호 목록 (0) | 2021.08.03 |
PHP 스크립트에서 JSON 반환 (0) | 2021.07.30 |
PHP에서 문자열의 마지막 문자를 얻는 방법 (0) | 2021.07.29 |
htmlentities () vs htmlspecialchars () (0) | 2021.07.27 |