접속자의 IPv4 주소를 받을 방법이 있나요?
본문
투표할때 중복투표하는 부분을 아이디 없이 아이피로만 구분해서 할려고하는데
같은 공유기를 쓰는 사무실에서는 아이피가 동일하다보니 한사람만 투표를 해도
모두 투표했다고 떠가지고 ㅠㅠ
해당부분을 해결하고자 각 개별 PC의 IP를 가져오고싶은데 구글링으로 나름 찾아봤지만
해보니까 안되더라구요 ㅠㅠ
if(!empty($_SERVER['HTTP_CLIENT_IP']) && getenv('HTTP_CLIENT_IP')){
return $_SERVER['HTTP_CLIENT_IP'];
}
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && getenv('HTTP_X_FORWARDED_FOR')){
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(!empty($_SERVER['REMOTE_HOST']) && getenv('REMOTE_HOST')){
return $_SERVER['REMOTE_HOST'];
}
elseif(!empty($_SERVER['REMOTE_ADDR']) && getenv('REMOTE_ADDR')){
return $_SERVER['REMOTE_ADDR'];
}
이런걸로도 안나오더라구요ㅠㅠ
혹시 접속자의 IPv4 주소를 가져오는게 불법인가요?
답변 1
PHP로는 공유기 IP는 사설IP라서 가져올 수 없습니다.
networking - Get Local IP of a device in chrome extension - Stack Overflow
스크립트로는 가능한듯 한데 참고하세요.
중복투표 방지는 세션이나 쿠키로 해보세요.