2009-07-11 3 views
4

간헐적으로 DNS 정보를 조회 할 수있는 Windows 서버가 있습니다. 문제의 근본 원인을 찾으려고하지만 서버가 조회를 수행 할 수 있는지 여부를 모니터링 할 수 있기를 바랍니다.PHP에서의 DNS 조회

기본적으로, 몇 가지 일반적인 호스트 이름과 표시 '성공'은 조회가 성공하는 경우를 조회하려고합니다.

이 사이트는 PHP 그래서 난 모니터 스크립트는 PHP에하는 것이 원합니다 실행하지만 누군가가 ASP/닷넷에서이 작업을 수행하는 방법을 알고 있다면 잘 작동하는.

답변

0

그러나 약간의 기능 제한이 있습니다 변경 로그 : v. PHP 5.3.0 -이 기능은 이제 Windows 플랫폼에서 사용할 수 있습니다.

IIS에서 PHP를 업데이트하지 않으려는 경우. Windows 바이너리에서 dig를 실행하는 또 다른 방법이 있습니다. 여기 은 dig for windows입니다. 자신이 필요로하는 프로그램이있을 수도 있습니다. 오래되지 않은 nslookup 명령을 벗어났습니다.

+0

내 경우에는 서버가 5.3을 실행 중이기 때문에이 기능이 작동하지만 원래 Windows에서이 기능을 사용할 수 없다고 생각되어 원래 질문을했습니다. –

2

Windows에서 PHP DNS 기능은 PHP 5.3 이전에 기본적으로 사용할 수 없습니다. Pear Net_DNS Class가 필요합니다. http://pear.php.net/package/Net_DNS

사용 예제 :

require_once 'Net/DNS.php'; 

$resolver = new Net_DNS_Resolver(); 
$resolver->debug = $this->debug; 
// nameservers to query 
$resolver->nameservers = array('192.168.0.1'); 
$resp = $resolver->query($domain, 'A'); 

소스 : http://code.google.com/p/php-smtp-email-validation/source/browse/trunk/smtp_validateEmail.class.php#232

0

는 "핑"항상 문제의 호스트 이름을 핑하기 전에 DNS 조회 (순방향 및 역방향)를 수행한다. ping (또는 dig)을 사용하여 ping이 작동하지 않는지 확인하기 위해 쉘 스크립트를 작성하는 것은 독자에게 운동으로 남겨 둡니다.

또 다른 옵션은 업스트림 DNS 서버에서 응답을 캐시 로컬 컴퓨터에 캐싱 DNS 서버를 사용하는 것입니다, 상류가 다운되었을 때 캐시에서 데이터를 전송합니다. 내 자신의 데드 우드는 32k Windows 또는 UNIX 바이너리로이 작업을 수행 할 수 있습니다 (전체 DNS 재귀를 원할 경우 64k)