int checkdnsrr ( string host [, string type])
- 인터넷 호스트 네임이나 IP 어드레스에 대응되는 DNS 레코드를 체크함
- host에 대응이 되는 type의 레코드를 DNS에서 찾아 어떠한 레코드라도 발견이 되면 TRUE를 반환
- 그리고 레코드가 발견되지 않거나 에러가 발생하면 FALSE를 반환.
type은 A
, MX
, NS
, SOA
, PTR
, CNAME
중에 있거나 다른 것이 올수도 있다. 디폴트 값은 MX
입니다.
Host는 IP 어드레스이거나 호스트 네임
ex)
function validate_email($email){
$exp = "/^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$/i";
if(preg_match($exp,$email)){
if(checkdnsrr(array_pop(explode("@",$email)),"MX")){
return true;
}else{
return false;
}
}else{
return false;
}
}
exp는 이메일의 형식인지 확인하기 위한 정규식이다.
array_pop(explode("@",$email)
이 입력한 메일에서 도메인값만 가져오는 부분이다.
(array_pop
함수 참고 : 내가 블로그에 작성한 array_pop
함수 설명한 내용 확인할 것)
만약 MX
이면 메일이 맞다는 true반환, 아니라면 false반환한다.
또한, A
, MX
, NS
, SOA
, PTR
, CNAME
에 대한 설명은 다음과 같다.
레코드 종류 |
|
레코드 |
상세 설명 |
NS |
도메인의 네임서버 정보 |
MX |
도메인의 MX(Mail Exchanger) 서버 |
A |
호스트의 IP주소 |
CNAME |
별칭으로 부여된 canonical name |
SOA |
도메인의 start-of-authority정보 |
HINFO |
호스트의 CPU 정보와 운영체제 정보 |
MINFO |
메일박스와 메일 리스트 정보 |
PTR |
IP주소에 대한 호스트명 |
TXT |
호스트에 대한 텍스트 정보 |
UNIFO |
사용자 정보 |
ANY |
호스트에 관련된 모든 레크드들의 정보 |
* 참고사이트 :
checkdnsrr
함수 설명 : http://combay.co.kr/php_manual_ko/function.checkdnsrr.html