오늘 저는 PHP 기반 응용 프로그램의 꽤 이상한 동작을 보았습니다. 시스템의 특정 부분에는 AJAX 호출을 사용하는 UI가있어 상자의 내용을 백엔드에서 채 웁니다.php/ajax REMOTE_ADDR 가짜 네트워크 어댑터의 IP로 설정했습니다
이제 AJAX 수신기는 들어오는 모든 요청에 대해 보안 검사를 수행하여 에만 유효한 클라이언트 IP 만 응답을 받도록합니다. 유효한 IP는 백엔드에도 저장됩니다.
는 클라이언트의 IP 내가 고객의 대부분을 밖으로 작동$_SERVER['REMOTE_ADDR']
평범한 구식
를 사용 얻으려면. 오늘 remote_addr에 내 응용 프로그램의 실제 통신 주소 인 을 수행 한 네트워크 어댑터의 IP가 포함 된 설치가 실행되었습니다. 주위에 인터넷 검색을나에게 Roshan's Blog entry on the topuic을 agve :
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))//check ip is pass from prxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
는 슬프게도 문제가 지속.
아무도 이런 종류의 문제에 빠져 들었습니까 (실제로 나는 완전히 새로운 문제를 발견했다고 생각하지 않습니다 ^^). 그리고이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
편집 : 통신이 완료
- PHP 버전 5.2.9-1
- 아파치/2.2.9 (Win32에서)에있어
일반 LAN 카드를 통해 이제 액추컬 클라이언트에는 여러 개의 장치가 추가되었습니다. VMNet 어댑터 등.
나는 클라이언트 구성을 많이 할 수있는 '방해'웹 서버 ...
TIA가
K
여기서는 응용 프로그램을 실행하는 서버와 서버에 관한 세부 정보를 입력 할 수 있습니까? IP가 보유하고있는 IP를 의미합니다. –
PLS 내 또한 – KB22
그래서 예를 들어 시나리오는 클라이언트 측에 다음과 같을 수 참조 : eth0를 - 10.0.0.1 의 eth1 - 다음 서버에 u는 10.1.1.2을 가지고 요청이 10.1 대신 클라이언트를 통해 갈 때 10.1.1.1 .1.1 10.0.0.1을 나타냅니다? –