【发布时间】:2014-06-27 19:57:09
【问题描述】:
我想知道如何在收到的电子邮件中查询 Spamhaus 的 IP 地址 (Spamhaus zen http://www.spamhaus.org/zen/) 和域 (DBL http://www.spamhaus.org/dbl/),以确定给定邮件是否为垃圾邮件。
【问题讨论】:
标签: email-spam spam-prevention
我想知道如何在收到的电子邮件中查询 Spamhaus 的 IP 地址 (Spamhaus zen http://www.spamhaus.org/zen/) 和域 (DBL http://www.spamhaus.org/dbl/),以确定给定邮件是否为垃圾邮件。
【问题讨论】:
标签: email-spam spam-prevention
此 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];
}
}
【讨论】:
您可以通过host 或dig 连接到 DBL,因为它作为 DNS 服务运行。此常见问题解答页面显示了示例查询:http://www.spamhaus.org/faq/section/Spamhaus%20DBL#277
$ 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)。这记录在 DNSBL 的常见问题解答底部 (http://www.spamhaus.org/faq/section/DNSBL%20Usage#252)。
列出的域或地址会产生 127.0.0.* 形式的结果,而干净的域/地址会返回“未找到”状态。
【讨论】: