Где находится документация для Spamhaus?
Я хотел бы знать, как запросить Spamhaus для IP-адресов (Spamhaus zen http://www.spamhaus.org/zen/) и для доменов (DBL http://www.spamhaus.org/dbl/), найденных во входящей электронной почте чтобы определить, является ли данное сообщение спамом.
2 ответа
Вы можете подключиться к DBL через host
или же dig
, поскольку он работает как служба DNS. На этой странице FAQ показаны примеры запросов: http://www.spamhaus.org/faq/section/Spamhaus%20DBL
$ host example.com.dbl.spamhaus.org
Host example.com.dbl.spamhaus.org not found: 3(NXDOMAIN)
$ host dbltest.com.dbl.spamhaus.org
dbltest.com.dbl.spamhaus.org has address 127.0.1.2
Поиск IP-адреса выполняется аналогично, номера в IP-адресе в обратном порядке (1.2.3.4
становится 4.3.2.1.zen.spamhaus.org
). Это описано в нижней части FAQ для DNSBL ( http://www.spamhaus.org/faq/section/DNSBL%20Usage).
$ host 130.119.180.199.zen.spamhaus.org 130.119.180.199.zen.spamhaus.org имеет адрес 127.0.0.2 130.119.180.199.zen.spamhaus.org имеет адрес 127.0.0.11
Перечисленные домены или адреса приводят к результатам в форме 127.0.0.*, Тогда как чистые домены / адреса возвращают статус "не найден".
Этот код C++ работает быстро и безопасно:
char *server = "some.spammer.org"; // or Ip address
BYTE ResType = 0;
HOSTENT *pHost = gethostbyname(server);
if (pHost)
{
char query[80];
BYTE *ip = (BYTE *)pHost->h_addr;
sprintf(query, "%u.%u.%u.%u.zen.spamhaus.org", ip[3], ip[2], ip[1], p[0]);
pHost = gethostbyname(query);
if (pHost)
{
ResType = pHost->h_addr[3];
}
}