2011-07-05 2 views
0

, 나는이 설정이 있습니다대상 URL에서 curl을 사용하여 대상 URL을 호출하는 URL을 확인하는 방법은 무엇입니까? 좋아

//in example1.com, I am setting cURL <br /> 
$c = curl_init(); <br /> 
curl_setopt($c, CURLOPT_URL, 'http://example2.com'); 


//now in example2.com <br /> 
Is it possible to get the URL "example1.com" which is calling this URL (example2.com)? 

file_get_contents('php://input')를 사용하여, 나는 example1.com의 입력을받을 수 있지만 내가 어떻게 "example1.com을"여기에 example2.com있는 URL을 얻을 수 있나요?

답변

0

정확히 무엇을 요구하고 있는지 확실하지 않습니다. 당신은이

"http://" . $_SERVER["SERVER_NAME] . $_SERVER["REQUEST_URI"] 

같은 단지 문제는 당신 스크립트가 호출되는 URL을 알고 싶어하지만 당신은 당신을 요청한 클라이언트의 URL을 알고 요구하는 경우 그 수없는 경우. 다른 URL에 의해 호출 된 것을 보장 할 수있는 것이 없기 때문입니다. 그냥

은 클라이언트에 대해 확실히 발견 할 수있는 유일한 방법은 IP 주소와 포트

$_SERVER["REMOTE_ADDR"] 
$_SERVER["REMOTE_PORT"] 
입니다 ... 브라우저, 웹 크롤러, cron 작업 등으로 사용자의 타이핑가 someting 수 당신 클라이언트가 friently HTTP 클라이언트 인 경우 지금은 당신이 요구하고 있었는지 확실하지 그게 전부 야 등

$_SERVER["HTTP_USER_AGENT"] 

당신은 다른 정보를 얻을 수 있지만 나는 그것을 빼앗아 간 것.

+0

안녕하세요. 답변 해 주셔서 감사합니다. 내 말은 내 사이트에 액세스 할 때 컬을 사용하는 사이트의 URL을 얻는 것입니다. $ _SERVER [ "REMOTE_ADDR"]을 시도했지만 IP 주소 만 반환합니다. 나는 또한 gethostbyaddr ($ _ SERVER [ "REMOTE_ADDR"])을 시도했지만 사이트의 올바른 URL을 반환하지 않습니다. 사이트에 액세스하는 URL을 확인해야하기 때문에 이것은 불가능합니다. – eleda

+0

불가능하지 않습니다. garauntee 할 것이 없기 때문에 그것은 심지어 "url"에서 액세스되고 있습니다. 액세스하는 클라이언트를 제어하는 ​​경우 사용자 정의 헤더를 추가 할 수 있습니다. 그러면 클라이언트를 세분화 할 수 있고 그 외 모든 것은 "다른"버킷에 들어갑니다. – Sodved

관련 문제