Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Spamhaus.org而不是MX进行checkdnsrr检查?_Php_Spam_Verification - Fatal编程技术网

Php 如何使用Spamhaus.org而不是MX进行checkdnsrr检查?

Php 如何使用Spamhaus.org而不是MX进行checkdnsrr检查?,php,spam,verification,Php,Spam,Verification,我已经收到了这段代码,可以用来测试和验证输入的电子邮件地址是否有效。我知道这是可行的,但是圣诞节期间所有的礼物的价格标签都被去掉了 在我的情况下,说明已被删除。我从这个脚本中看到,“MX”告诉脚本使用MX验证数据库。。。我是要替换它还是在它旁边添加“spamhaus.org”来让它工作?还是说不止这些 我的服务器不是windows机器,所以我不需要担心checkdnsrr不工作 还有,这个脚本有更好的版本吗?我很好奇,因为无意中PHP编码的这一部分对我来说是新的 提前谢谢 // take a g

我已经收到了这段代码,可以用来测试和验证输入的电子邮件地址是否有效。我知道这是可行的,但是圣诞节期间所有的礼物的价格标签都被去掉了

在我的情况下,说明已被删除。我从这个脚本中看到,“MX”告诉脚本使用MX验证数据库。。。我是要替换它还是在它旁边添加“spamhaus.org”来让它工作?还是说不止这些

我的服务器不是windows机器,所以我不需要担心checkdnsrr不工作

还有,这个脚本有更好的版本吗?我很好奇,因为无意中PHP编码的这一部分对我来说是新的

提前谢谢

// take a given email address and split it into the username and domain.
list($userName, $mailDomain) = split("@", $email);
if (checkdnsrr($mailDomain, "MX")) {
  // this is a valid email domain!
}
else {
  // this email domain doesn't exist! bad dog! no biscuit!
} 
对于checkdnsr,唯一受支持的方法是A、MX、NS、SOA、PTR、CNAME、AAAA、A6、SRV、NAPTR、TXT或任何其他方法。无法添加自定义URL

尝试:


主人是本地人,我想是吧?我这么问是因为我使用的web提供商首选IP或“localhost”字符串。。。另外,我注意到$rlb与您发布的链接的评论部分不同。这是设计的吗?$rbl是sbl-xbl.spamhaus.org,代码和注释都是一样的。您查询的URL是您正在检查的主机IP的串联(反向),因此在您的情况下,@(执行反向查找以获取IP)和上面给出的RBL之后的域。gethostbyname()将获取您提供的任何主机名的IPv4地址。谢谢,非常感谢您的帮助。好的,我尝试了您的脚本,效果非常好,但它只针对IP地址?或者这也可以用于电子邮件地址?
$host = '64.53.200.156';

$rbl  = 'sbl-xbl.spamhaus.org';
// valid query format is: 156.200.53.64.sbl-xbl.spamhaus.org
$rev = array_reverse(explode('.', $host));

$lookup = implode('.', $rev) . '.' . $rbl;

if ($lookup != gethostbyname($lookup)) {
    echo "ip: $host is listed in $rbl\n";
} else {
    echo "ip: $host NOT listed in $rbl\n";
}