일부 DNS TXT 레코드의 유효성을 검사해 보겠습니다. 👍
이제 여러 방법으로 해당 도메인을 소유하고 있는지 확인할 수 있습니다. 도메인을 보여주는 대시보드 사진을 보내도록 할 수 있습니다. 또는 그들에게 당신만을 위한 페이지를 만들게 할 수도 있습니다.
이 두 시나리오 모두 기복이 있습니다. 예를 들어 그림과 같이 사용자는 브라우저의 개발자 도구를 사용하여 도메인을 쉽게 추가할 수 있습니다. 페이지의 경우 번거롭습니다.
대신 DNS에 TXT 레코드를 추가하도록 요청한 다음 확인할 수 있습니다. 다음은 PHP에서 이를 검증하는 빠르고 쉬운 방법입니다.
DNS 레코드 가져오기 기능.
DNS 레코드를 얻는 것이 어렵다고 생각할 수도 있습니다. 그러나 두려워하지 마십시오. PHP에는 이를 위한 내장 기능이 있습니다. 소개dns_get_record . 🎉
이 함수는 연관 배열의 배열에서 주어진 호스트 이름에 대한 DNS 레코드를 반환합니다. 이제 이 함수가 기본적으로 반환할 모든 레코드를 얻을 수 있습니다. 하지만 호스트 이름의 TXT 레코드가 필요하므로 해당 레코드만 가져오도록 하겠습니다.
$records = dns_get_record('example.com', DNS_TXT);
TXT 레코드가 없으면 빈 배열이 반환됩니다.
키에 대한 유효성 검사.
이제 우리는
$records
. 키에 대해 유효성을 검사해 보겠습니다. 그리고 배열을 반환하기 때문에 array_filter
및 in_array
를 사용하여 매우 쉽게 할 수 있습니다.이제 키를 포함하는
array
를 생성해 보겠습니다.$key = array('devdojo-verification=V3m0R0G00yHxVO_wWFMK1tF3nQRJ9');
이제
$records
를 필터링하여 원하는 레코드만 반환할 수 있습니다. 우리 키와 일치하는 것.$filter = array_filter($records, function ($arr) use ($key) {
return in_array($arr['txt'], $key);
});
일치하는 항목을 찾으면 레코드가 포함된
$filter
에 새 값이 생깁니다. 일치하는 항목이 없으면 $filter
빈 배열이 됩니다.유효한지 아닌지?
이제
$filter
를 사용하여 sizeof
레코드를 확인할 수 있습니다. 일치하는 항목을 찾으면 필터의 크기가 0보다 커집니다.print (sizeof($filter) > 0) ? 'Valid' : 'Invalid';
명심해야 할 사항.
확인 중인 호스트 이름이
www.example.com
아래에 TXT 레코드를 추가하고 확인 중인 경우 example.com
. 당신은 일치를 찾을 수 없습니다. www.example.com
및 example.com
이후 두 개의 다른 레코드를 반환합니다.올바른 호스트 이름을 확인해야 함을 명심하십시오. 🙂
결론적으로.
이제 TXT 레코드를 가져오고 일치 항목을 확인하는 방법을 알게 되었습니다. 모든 프로그램과 마찬가지로 이것은 확장될 수 있습니다. 수표를 훨씬 더 역동적으로 만들 수 있습니다. 예를 들어 키는 데이터베이스 또는 시스템의 파일에 있을 수 있습니다.
이것을 대기열의 작업에 추가하고 도메인이 여전히 유효한지 격일로 확인하도록 할 수 있습니다.
선택은 언제나 그렇듯이 귀하에게 달려 있습니다.
즐거운 코딩. 👍
Reference
이 문제에 관하여(일부 DNS TXT 레코드의 유효성을 검사해 보겠습니다. 👍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/thinkverse/let-s-validate-some-dns-txt-records-2721텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)