클라우드플레어 사용사 ipv6표시
검색해보니 common에
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
이렇게하면 된다는 글도 봐서 해봤는데
비회원 글작성자의 아이피나 접속자의 아이피 모두 ipv6형태로 나타나고있습니다ㅜ 가끔 특정 와이파이에서는 ipv4로 나오기도 합니다.
클라우드플레어 네트워크 설정에서 ipv6를 끄면된다고도 해서 봤는데 작년부터 비활성화를 못하게 했다고 하더라구요
혹시 방법이 있을까요??
답변 3개 / 댓글 1개
< 방법1 : cmd 에서 (윈도우든 리눅스든) >
(1) 리눅스에서 실행하는 경우 :
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/존아이디/settings/ipv6"
-H "Authorization: Bearer 토큰"
-H "Content-Type: application/json"
--data '{"value":"off"}'
(2) 윈도우 cmd에서 실행하는 경우 :
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/존아이디/settings/ipv6" ^ -H "Authorization: Bearer 토큰" ^ -H "Content-Type: application/json" ^ --data "{"value":"off"}"
존아이디는 Cloudflare 대시보드에서 도메인 선택 후 오른쪽 하단 API 항목에 Zone ID가 있습니다. 토큰은 대시보드 오른쪽 상단 프로필 > My Profile > API Tokens에서 Create Token으로 생성하시면 됩니다. Zone Settings Edit 권한을 넣어주시면 되고, 토큰은 생성 직후에만 보여주니 바로 복사해두세요.
근데 지금은 비공식적으로 안막혀서 작동이 되는것뿐이고 언젠가는 막힐수 있으니 참고 바랍니다.
< 방법2 : Pseudo IPv4 활성화 >
Pseudo IPv4 기능을 사용하는 방법이 있긴한데
그거는 말 그대로 가짜(pseudo) IPv4입니다.
IPv6 주소를 해싱해서 IPv4 형태로 변환한 거라서 실제 방문자의 진짜 IPv4 주소가 아닙니다. 그래서 말씀하신 것처럼 맞지 않는 가상의 아이피가 나오는 겁니다.
결론적으로 IPv6를 그냥 받아들이는 수밖에 없습니다. Cloudflare가 IPv6 비활성화 옵션을 막아버린 이상, 방문자가 IPv6로 접속하면 IPv6 주소가 오는 게 당연한 거고, 이걸 진짜 IPv4로 바꿀 수 있는 방법은 없습니다.
그누보드에서 대응하시려면 먼저 IP 저장 컬럼 길이가 IPv6를 수용할 수 있는지 확인해보세요. 최소 varchar(45) 이상이어야 하고, IP 기반 차단 기능을 쓰고 계시면 IPv6 대역 차단도 지원되게 수정하셔야 합니다. 그리고 IP를 표시하는 부분에서 IPv6가 길어서 레이아웃이 깨지는 곳이 있으면 잘라서 표시하도록 처리하시면 됩니다.
요즘은 IPv6 비중이 계속 늘어나는 추세니까 어차피 대응하셔야 할 부분이기도 합니다. 참고가 되셨으면 좋겠습니다.
api로 호출하면 먹히네요
curl.exe -X PATCH "https://api.cloudflare.com/client/v4/zones/존아이디/settings/ipv6" `
-H "Authorization: Bearer 토큰" `
-H "Content-Type: application/json" `
--data "{`"value`":`"off`"}"
Restoring original visitor IPs · Cloudflare Support docs
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.