현재 위치: > 최신 기사 목록> DNS_CHECK_RECORD 함수가 NULL 값을 반환하는 이유는 무엇입니까? 고치는 방법?

DNS_CHECK_RECORD 함수가 NULL 값을 반환하는 이유는 무엇입니까? 고치는 방법?

gitbox 2025-07-15

1. 네트워크 문제 또는 DNS 서버를 사용할 수 없습니다

:
DNS_CHECK_RECORD ()는 네트워크 연결 및 DNS 서버의 일반 작동에 따라 다릅니다. DNS 쿼리가 실행될 때 서버를 도달 할 수 없거나 네트워크 연결이 중단되면 기능이 DNS 레코드를 얻지 못하여 널 값을 반환 할 수 없습니다.

수정 방법 :

  • DNS 서버에 액세스 할 수 있도록 서버의 네트워크 연결이 정상인지 확인하십시오.

  • PING 또는 NSLOOKUP 도구를 사용하여 대상 DNS 서버를 사용할 수 있는지 테스트하십시오.

  • DNS 서버가 도달 할 수없는 경우 관리자에게 문의하거나 DNS 서버를 교체하십시오.

2. DNS 레코드 유형이 올바르지 않습니다

이유 :
DNS_CHECK_RECORD () 함수는 A , MX , TXT 등과 같은 여러 유형의 DNS 레코드를 지원합니다. 부정확하거나 지원되지 않는 레코드 유형을 전달하면 함수가 NULL 값을 반환 할 수 있습니다.

수정 방법 :

  • DNS_CHECK_RECORD () 로 전달 된 DNS 레코드 유형이 유효한지 확인하십시오. 예를 들어, 일반적인 유형에는 A , MX , CNAME , TXT 등이 포함됩니다.

  • 함수를 호출하여 DNS 레코드 유형을 확인하여 올바른지 확인할 때 checkdnsrr ()를 사용할 수 있습니다.

3. DNS 레코드는 존재하지 않습니다

이유 :
쿼리 도메인 이름의 DNS 레코드가 존재하지 않으면 DNS_CHECK_RECORD ()는 NULL 값을 반환합니다. 이 상황은 존재하지 않는 특정 도메인 이름 또는 DNS 레코드가 구성되지 않은 경우 특히 일반적입니다.

수정 방법 :

  • 쿼리 도메인 이름이 올바른지 확인하고 입력 오류를 피하십시오.

  • 도메인 이름의 관련 레코드가 올바르게 구성되어 있는지 대상 도메인 이름의 DNS 구성을 확인하십시오.

  • 관리하는 도메인 이름 인 경우 DNS 관리 도구 (예 : CPANEL, CloudFlare 등)를 사용하여 로그 구성을 봅니다.

4. DNS 캐싱 문제

이유 :
때로는 DNS 쿼리가 로컬 또는 중간 DNS 캐시의 영향을받습니다. 캐시의 레코드가 만료되거나 부정확 한 경우 DNS_CHECK_RECORD () 가 NULL 값을 반환 할 수 있습니다.

수정 방법 :

  • 최신 DNS 레코드가 쿼리되어 있는지 확인하기 위해 로컬 DNS 캐시 (명령 줄에서 ipconfig /flushdns 명령을 사용하여)를 지우십시오.

  • 문제가 지속되면 Google DNS (8.8.8.8 및 8.8.4.4) 또는 CloudFlare DNS (1.1.1.1)와 같이 사용중인 DNS 서버를 교체하십시오.

5. 권한 제한

이유 :
경우에 따라 PHP 스크립트에 서버 환경에 대한 권한 제한이 적용되어 DNS 쿼리를 수행 할 수 없습니다. 특히 공유 호스팅 또는 일부 VPS (Virtual Private Server) 환경에서 PHP 구성은 외부 네트워크 요청을 제한 할 수 있습니다.

수정 방법 :

  • PHP 구성 파일 ( php.ini )에서 disable_factions 설정을 확인하여 DNS_CHECK_RECORD () 와 같은 네트워크 관련 기능이 비활성화되지 않았는지 확인하십시오.

  • 서버의 방화벽 또는 보안 구성에서 외부 DNS 요청이 차단되었는지 확인하십시오.

6. 함수 매개 변수 문제

이유 :
DNS_CHECK_RECORD () 함수는 도메인 이름 및 쿼리 유형을 포함한 여러 매개 변수를 허용합니다. 이러한 매개 변수가 잘못 형식화되거나 필요한 값이 누락 된 경우 널 값이 반환 될 수도 있습니다.

수정 방법 :

  • DNS_CHECK_RECORD () 에 전달 된 첫 번째 매개 변수가 유효한 도메인 이름인지 확인하십시오.

  • 두 번째 매개 변수 (레코드 유형)가 올바르게 전달되었는지 확인하고 법적 유형인지 확인하십시오.

 <span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">dns_check_record</span></span><span>(</span><span><span class="hljs-string">'example.com'</span></span><span>, </span><span><span class="hljs-string">'A'</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"A record exists."</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"No A record found."</span></span><span>;
}
</span></span>

7. 코드 로직 문제

이유 :
때로는 코드에 논리적 오류가있을 수있어 DNS 레코드가 존재하더라도 함수가 널 값을 반환합니다. 예를 들어, 잘못된 조건부 판단, 반복 통화 등

수정 방법 :

  • 코드의 조건부 판단을 신중하게 점검하여 논리에 문제가 없는지 확인하십시오.

  • 디버깅 정보를 인쇄하고 기능 반환 값과 호출 스택을 확인한 후 문제의 근본 원인을 찾을 수 있습니다.