Спам — Как я могу запросить через черный список php spamhaus ip

Попытка запроса spamhaus.org для занесенного в черный список ip. Примером является 69.35.160.59
Если я пойду к https://www.spamhaus.org/lookup/ и введите его, он показывает в черный список с 112.198.83.17, однако следующий код возвращает пустой массив.

Я печатаю URL, и он выглядит правильно отформатирован в обратном IP
17.83.198.112.zen.spamhaus.org,

Есть идеи?

<?php

$ip = "112.198.83.17";
$blacklist = "zen.spamhaus.org";
$url = implode(".", array_reverse(explode(".", $ip))) . ".". $blacklist;
echo "$url<br>";
$record = dns_get_record($url);
print_r ($record);

?>

3

Решение

Вы делаете правильно. Смотрите здесь коды результатов http://www.spamhaus.org/faq/section/DNSBL%20Usage#366

Вот мой вывод для ip 69.35.160.59

Array (
[0] => Array
(
[host] => 59.160.35.69.zen.spamhaus.org
[type] => A
[ip] => 127.0.0.4
[class] => IN
[ttl] => 900
)

[1] => Array
(
[host] => 59.160.35.69.zen.spamhaus.org
[type] => TXT
[txt] => http://www.spamhaus.org/query/bl?ip=69.35.160.59
[entries] => Array
(
[0] => http://www.spamhaus.org/query/bl?ip=69.35.160.59
)

[class] => IN
[ttl] => 900
)
2

Другие решения

Ваш код правильный. Просто убедитесь, что вы не используете общедоступные преобразователи DNS, такие как 8.8.8.8 и 8.8.4.4, потому что код не будет работать, если вы это сделаете.
Вы можете проверить, какие преобразователи вы используете, просмотрев файл /etc/resolv.conf

2

Я создал простую функцию, которая возвращает true, если указан в SpamHaus. Любые входящие IP-адреса проверяются и либо разрешены, либо заблокированы:

function callSpamhaus($UserIP) {
// NON-INFECTED IP FOR TESTING
// 192.99.150.120
// INFECTED IP FOR TESTING
// 216.145.14.142
$blacklist = "zen.spamhaus.org";
$url = implode(".", array_reverse(explode(".", $UserIP))) . ".". $blacklist;
$record = dns_get_record($url);
if (is_array($record) && !empty($record)) :
return TRUE;
endif;
}

Условие запускается при каждом доступе к сайту, на котором выполняется функция, используя любой метод, выбранный вами для получения IP-адреса и создания для него переменной:

$SpamHaus = callSpamhaus($IPAddress);
if ($SpamHaus === TRUE) :
Redirect("/administration/accessblocked.php");
endif;
1
По вопросам рекламы [email protected]