2010-08-04 4 views
1

get_dns_record을 사용하여 양식을 통해 제출 된 도메인의 특정 DNS 레코드를 검색하고 표시하는 PHP 스크립트가 있습니다.DNS_GET_RECORD MX 조회 실패

MX 레코드를 처리하는 섹션이 약간 신뢰할 수 없다는 점만 제외하면 실제로 잘 작동합니다. MX 레코드가 표시되지 않는 경우가 있습니다 (내가 알고있는 도메인에서). 2-3 회 새로 고침하면 가끔씩 나타납니다. 때로는 그렇지 않을 수도 있습니다.

생각하십니까?

function getDNSRecord($domain1) { 
$dns = dns_get_record($domain1, DNS_ANY); 
echo "These are DNS records"; 
foreach($dns as $d) { 
    // Only print A and MX records 
    if($d['type'] != "A" and $d['type'] != "MX") 
     continue; 

    // Print type specific fields 
    switch($d['type']) { 
     case 'A': 
      // Display annoying message 
      echo "<b>\n" . $d['ip'] . "</b>\n is the Primary A Record for this domain."; 
      break; 
     case 'MX': 
      // Resolve IP address of the mail server 
      $mx = dns_get_record($d['target'], DNS_A); 
      foreach($mx as $server) { 
       echo "This MX record for " . $d['host'] . " points to the server <b>\n" . $d['target'] . "</b>\n whose IP address is <b>\n" . $server['ip'] . "</b>. It has a priority of <b>\n" . $d['pri'] . "</b>\n."; 
      } 
     if ($d['target'] == $domain1) { 
      echo "<div id='mx-status'>There is an issue with this MX Record</div>\n"; 
       } else { 
      echo "<div id='mx-status'>This MX Record looks fine.</div>\n"; 
      } 
      break; 
    } 
} 
} 

답변

2

getmxrr()을 사용하여 도메인의 mx 레코드를 얻으려고하십니까? 설명서는 다음과 같습니다. http://us2.php.net/manual/en/function.getmxrr.php

+0

예.하지만 동일한 설정을 사용하여 구현 방법을 잘 모르겠습니다. MX 레코드를 찾을뿐만 아니라 가리키는 부분과 목적지의 IP 주소를 표시해야합니다. – Batfan