2014-11-17 2 views
0

PHP 웹 사이트에서 대상 머신에서 해결할 수없는 호스트로 컬해야합니다 (curl_error(6) couldn't resolve host을 반환 함). 내 로컬 컴퓨터에서도 문제가 해결되지만 일부 웹 검색을 수행 한 후에 DNS 캐싱 문제가 될 수 있다고 생각했습니다.
이 웹 서버에 대한 FTP 액세스 만 있으므로 restart Apache or edit the r.conf file을 사용할 수 없습니다.
도메인을 핑 (ping) 한 IP 주소를 사용하여 컬링을 시도했지만 불행히도 하위 도메인 (예 : api.domain.com)에 요청을해야하며 IP 주소에 대한 요청이 직접 다르게 처리됩니다.해결할 수없는 호스트를 말리시겠습니까?

호스트 헤더 (아래 참조)에서 하위 도메인 + 도메인을 지정할 수 있기를 기대했지만이 방법도 작동하지 않습니다.

$curl = curl_init(); 

$opt = array(
    CURLOPT_URL => 'http://11.22.33.44/handler.php?params=1', 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_HTTPHEADER => array('Host: subdomain.domain.com') 
); 
curl_setopt_array($curl, $opt); 
$output = curl_exec($curl); 
+0

"작동하지 않는 방법"에 대해 자세히 설명해 주시겠습니까? –

+0

호스트 헤더가 무시 된 것처럼 보이므로 작동하지 않습니다. 나는 그것없이 같은 결과를 얻는다. –

답변

1

호스트에 다른 방법 : (새 충분히 PHP 버전을 사용하는 경우, 분명히이 5.5 인 이상) 하구는에 대해 "가짜"항목으로 libcurl에서의 DNS 캐시를 미리 채울 것입니다 호스트 이름을 입력 한 다음 URL에서 호스트 이름을 사용할 수 있습니다. https://bugs.php.net/bug.php?id=63488&edit=1

기본이 libcurl에 옵션 CURLOPT_RESOLVE은 컬 웹 사이트에 설명되어 있습니다 :

은 심하게 PHP의 문서에 설명 된 것 같다하지만 버그 추적기에 대해 찾을 수있는 CURLOPT_RESOLVE 옵션을 참조하십시오.

+0

실제로 문서화가 잘못되었지만 유망 해 보입니다. –

+0

불행히도 CURLOPT_RESOLVE를 사용하면 여전히 동일한 컬 오류가 발생합니다. 버그 추적기 페이지에 코드 스 니펫을 사용했는데 한 번은 하위 도메인과 한 번만 사용했지만 두드러진 효과는 없었습니다. –

+1

그런 다음 요청이 어떻게 생겼는지 정확히 조사하고 올바른지 확인하십시오.이 두 가지 방법 모두 작동해야하기 때문에 –

관련 문제