Как я могу заставить checkdnsrr использовать Spamhaus.организация вместо MX?
Мне дали этот код для тестирования и проверки правильности входящих адресов электронной почты. Я знаю, что это работает, но опять же со всеми подарками на Рождество ценник был удален.
В моем случае инструкции были удалены. Я принимаю то, что я вижу в этом сценарии, что "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!
}
1 answers
Из http://php.net/manual/en/function.checkdnsrr.php единственными поддерживаемыми методами для checkdnsr являются A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT или ЛЮБЫЕ ДРУГИЕ. вы не можете добавить пользовательский URL-адрес.
Попробуйте:
$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";
}