2010-02-15 2 views
0

없이 유효한 URL을 입력 할 때 서버에있는 주요 웹 사이트를 반환PHP 컬과 file_get_contents 내가 다음 호출 할 때 내가 DNS 확인

file_get_contents('http://whgfdw.ca'); 

또는

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://whgfdw.ca'); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_exec($ch); 

반환 값이를 로컬 (전용) 웹 서버에있는 기본 사이트의 홈페이지 HTML. 아무도 내가 이것을 이해하도록 도와 주시면 감사하겠습니다. 아마도 제가 간과하고있는 것이있을 것입니다.

http://whgfdw.ca은 완벽한 URL이므로 간단한 URL 유효성 검사를 사용할 수 없습니다. DNS 항목이 없습니다.

이상적인 기능은 DNS 조회 실패 또는 콘텐츠가없는 404 또는 대소 문자를 찾아서 처리 할 수있는 기능입니다. 감사!

+0

무엇이 문제입니까? –

+0

어딘가에 깨진 DNS의 냄새가납니다. –

+0

질문은 어떻게하면 'http : // whgfdw.ca'와 같은 URL을 localhost로 해석하지 못하게 할 수 있습니까? 나는 Pekka의 평가에 동의하며,이 예제를 잡기 위해 간단한 DNS 조회를 사용하는 방법을 찾고있다. 나는'parse_url'과'dns_get_record'를 가지고 놀고 있습니다. –

답변

2

유효한 응답이 있으면 해당 DNS 항목이 어딘가에 있습니다. 내부 DNS 서버, 로컬 서버의/etc/hosts 파일 또는 스택의 다른 위치에있을 수 있지만 결론은 어떤 방식 으로든 해결됩니다. 그래서 그 질문은 입력 된 해결안의 진위가됩니다. 로컬 서버에 대한 모든 조회를 해결하도록 설정된 응용 프로그램이있을 가능성이 있습니다 (openDNS 및 많은 ISP가 해결되지 않은 DNS 이름을 검색 페이지로 해결하는 것과 유사).

어떻게 든 해결되고 있다는 것을 감안할 때 응답 내용을 예상 한 내용과 비교하지 않으면 실제로 유효성을 검사 할 수 없습니다. 404를 잡는 것은 꽤 쉽습니다. PHP에서 역방향 조회를 설정하여 믿을 수없는 이름을 잡을 수도 있습니다. 하지만 먼저 생각해야 할 해결책을 찾아야합니다.

관련 문제