当前位置:Gxlcms > PHP教程 > php检测email是否真实存在方法

php检测email是否真实存在方法

时间:2021-07-01 10:21:17 帮助过:5人阅读

在php的系统函数中有一个checkdnsrr函数,该函数的作用是根据一个给定的host name(域名)或者IP地址检查它是否有DNS记录,目的就是检验它是否真实存在。但是该函数仅可以在linux系统下使用,并不支持windows平台。下面是网上搜集到的一个hack的方法,实现在window平台上模拟checkdnsrr函数来检测一个email是否存在的功能!

if(!function_exists('checkdnsrr')){
function checkdnsrr($host,$type=''){
if(!empty($host)){
$type=(empty($type))?'MX':$type;
exec('nslookup -type='.$type.' '.escapeshellcmd($host),$result);
$it=new ArrayIterator($result);
foreach(new RegexIterator($it,'~^'.$host.'~',RegexIterator::GET_MATCH) as $result){
if($result){
return true;
}
}
}
return false;
}

}

接下来我来介绍一下该函数的参数:bool checkdnsrr ( string $host [, string $type = "MX" ] )第一个参数我们就不说了,就是域名或者ip第二个参数是解析类型,分别有:

A (Address) 记录 是指定主机名(或域名)对应的IP地址记录。

MX 记录 是指定邮件交换记录(默认)

NS 记录 是指定域名服务器的记录,指定该域名由哪个DNS来进行解析。

SOA记录 一般在辅助的dns服务器里才用到,用来指定谁是主服务器。

PTR记录 从ip指向域名的反向解析记录

CNAME记录 别名记录

AAAA记录 是一个指向IPv6的记录

A6记录 同上

SRV记录 它是DNS服务器的数据库中支持的一种资源记录的类型,一般是为Microsoft的活动目录设置时的应用。

TXT记录 文本信息

ANY记录 任何记录,所有数据类型

人气教程排行