2015-01-03 3 views
0

CloudFront를 통해 캐시 된 많은 이미지를 사용하는 webapp가 있습니다. 일부 사용자는로드 시간이 엄청나게 느리다는 불평 때문에 몇 가지 이미지를로드하고 시간을보고하여 속도 테스트를 수행 할 사이트에 진단 페이지를 작성하려고합니다. 또한 사용자 IP 주소 (페이지를로드 할 때 PHP에서 쉽게 얻을 수있는)를보고하려고하지만 클라우드 프런트 서버에 대한 IP 주소도 표시하려고합니다.클라이언트에 의한 Amazon cloudfront IP 해상도

dig subdomain.cloudfront.net 

을 나는 여러 IP 주소를 얻을 :

은 내가 실행하면 것을 알고있다. 앱 (브라우저, QT 앱, 모바일 앱)이 subdomain.cloudfront.net에 대한 동시 연결을 실행하는 경우 항상 첫 번째 IP를 먼저 사용하고 실패한 경우에만 다른 IP를 사용합니까?

그리고 브라우저에서 클라이언트 사용자 시스템의 IP 주소를 얻을 수있는 방법이 있습니까? IP 주소를 기반으로 다른 IP 목록을 얻을 것이라는 것이 내 이해입니다.

브라우저에서 불가능한 경우 응답에 IP 주소가 포함될 수있는 클라우드 서버에 보낼 수있는 요청 유형이 있습니까?

답변

0

항상 IP 주소의 순서를 randomise 것 먼저 첫 번째 IP

대부분의 현대적인 DNS 리졸버 및 권한이있는 서버를 사용합니까 - 더 정확하게, 해당 도메인 이름에 대한 A 레코드의 집합 .

따라서 "첫 번째 IP"는 실제로 전혀 결정적이지 않습니다.

그리고 실패한 경우에만 다른 것들을 사용합니까?

분명히 매우 브라우저 의존적입니다. Most modern browsers do handle it 다른 IP를 다시 시도하십시오. 나는 그것에 의지하지 않을 것이다.

브라우저 내에서 클라이언트 사용자 시스템의 IP 주소를 얻을 수있는 방법이 있습니까?

Chrome devtools 네트워크 패널에서 요청의 '원격 주소'입력란에 브라우저가 연결된 주소를 볼 수 있습니다. 그러나, 나는 페이지에 자바 스크립트에서 액세스 할 수있는 방법을 모르겠다.

그들이 IP 주소를 기반으로 다른 IP 목록을 얻는 것은 제 이해입니다.

예.

응답에 IP 주소가 포함될 수있는 클라우드 서버에 보낼 수있는 요청 유형이 있습니까?

아니요. 그러나 Via 또는 X-Amz-Cf-Id 응답 헤더를 리버스 엔지니어링 할 수 있습니까? 요약하자면 16 진수 또는 64 진수 디코딩 후에도이 두 가지를 모두 알지 못합니다.

즉, PHP를 실행하는 서버로 요청을 전달하는 배포판에 URL 접두어를 설정할 수 있다는 트릭이 있습니다. 그런 다음 사용자가 PHP 스크립트로 전달되는 요청의 결과가되는 URL로 사용자를 안내합니다. PHP 스크립트에서 X-Forwarded-For 헤더를 검토하십시오. 헤더에는 Cloudfront IP가 포함되어야합니다.

관련 문제