Fortigate 40C를 통해 인터넷에 연결된 서버가 있습니다. 내 PHP 코드가 $_SERVER['REMOTE_ADDR']
이라면 PHP 스크립트에 액세스하는 원격 IP가 아닌 라우터의 IP 주소 (fortigate)를 반환합니다.
왜 이런가요?
Fortigate 40C를 통해 인터넷에 연결된 서버가 있습니다. 내 PHP 코드가 $_SERVER['REMOTE_ADDR']
이라면 PHP 스크립트에 액세스하는 원격 IP가 아닌 라우터의 IP 주소 (fortigate)를 반환합니다.
왜 이런가요?
Fortigate에는 정책에서 "NAT 사용"옵션이 있습니다. 이는 주소 변환 (어쨌든 그렇게합니다)을 의미하지는 않지만 원격 IP를 게이트웨이 IP로 대체하는 일부 패킷을 변경한다는 것을 의미합니다 .
"NAT 사용"이 비활성화되어 있고 $_SERVER['REMOTE_ADDR']
이 예상대로 작동하는지 확인하십시오.
@Simon_eQ이 질문을 올린 이유는 stackoverflow에서이 질문에 대한 답을 찾지 못했고 나를 따르는 다른 사람들에게 유용 할 것이라고 생각했습니다. – derekdreery
이것은 참으로 도움이되었습니다 :) 묻고 주저하지 말고 직접 답해 주셔서 감사합니다! – Roeland
원본 IP가 여전히 요청에있는 것 같습니다. 'X_FORWARDED_FOR'와 같은'X_' 헤더를 찾을 수 있는지보십시오. – Halcyon