在java中使用RBL服务器(中国反垃圾邮件联盟的CBL+使用)
这是06年写的,不知道现在RBL改了没,不过恢复过来做记录,以后可能需要。
实时黑名单(RBL)实际上是一个可供查询的IP地址列表,通过DNS的查询方式来查找一个IP地址的A记录是否存在来判断其是否被列入了该实时黑名单中。基于这条原理,那么要写客户端就比较容易了。
使用JNDI查询
DirContext ictx = new InitialDirContext();
Attributes a = ictx.getAttributes("dns://cblplus.anti-spam.org.cn/80.241.134.80.cblplus.anti-spam.org.cn", new String[] { "A" });
返回内容如下:
A: 127.0.8.6
说明IP80.134.241.80在CBL+服务器中(这个IP是我在里面找来的,应该返回如上内容)
其中DNS的URL表示格式如下:
dns://dnsserver:port/domain
当port未指定时,将使用默认的端口(53,一般来说,DNS Server都是使用此端口,所以一般都不用指定)而dnserver不指定时,将使用运行此程序的操作系统的设置来定,由于要使用中国反垃圾邮件联盟的CBL+服务(其它几项服务如CBL、CDL、CBL-都是类似的,只是返回值不一样,见附表),所以一定要将CBL+的服务器设置为DNS Server进行查询。
关于JNDI/DNS部份说明,请参考:http://java.sun.com/j2se/1.5.0/docs/guide/jndi/jndi-dns.html
使用DatagramPacket进行信息查询
建立DatagramSocket连接后,向CBL+服务器发送DatagramPacket数据报,然后解析返回的数据就可以得到正确的结果,我以前就是使用这种方法(因为以前不知道可以通过JNDI查询),这种方法可以允许开发人员灵活定制请求及相应的内容,这是优点,缺点是要写好多代码,呵呵,这里就不多说了。
一般对于RBL而言,可能存在许多种返回值(中国反垃圾邮件联盟的没有,只有一种返回值),如sbl-xbl.spamhaus.org就提供了许多种服务,一般提供服务的网站都会有介绍,对于邮件接收量不是很大或速度要求不是很高的用户推荐多使用几个RBL服务器,对于sbl-xbl.spamhaus.org是一个非常优秀的服务站点,建议大家使用一下。
中国反垃圾邮件联盟提供的服务器地址及返回码:
| 名称 | 地址 | 测试地址 | 返回状态码 |
| CBL | cbl.anti-spam.org.cn | 2.0.0.127.cbl.anti-spam.org.cn. | 127.0.8.2 |
| CDL | cdl.anti-spam.org.cn | 0.0.0.240.cdl.anti-spam.org.cn. | 127.0.8.4 |
| CBL+ | cblplus.anti-spam.org.cn | 2.0.0.127.cblplus.anti-spam.org.cn. | 127.0.8.6 |
| CBL- | cblless.anti-spam.org.cn | 2.0.0.127.cblless.anti-spam.org.cn. | 127.0.8.5 |
好了,写完收工。
在java中使用RBL服务器(中国反垃圾邮件联盟的CBL+使用)的更多相关文章
- Postfix上的反垃圾邮件的四个方法
在介绍如何配置Postfix的smtp配置之前有必要首先介绍一下它的背景和特点.Postfix是一个由IBM资助下由WietseVenema 负责开发的自由软件工程的一个产物,其目的是为用户提供除se ...
- postfix反垃圾邮件说明
参考地址:http://guailele.blog.51cto.com/1156442/780223 1.打开 smtp 的认证模块 在/etc/postfix/main.cf文件最后加上: sm ...
- 如何让企业邮箱更安全之gmail yahoo hotmail 反垃圾邮件机制
一.雅虎.Gmail Domainkeys 是由雅虎公司推出的一项确保电子邮件来源的真实性和内容的完整性的技术,它能让电子邮件服务商确定某封信是否真实的来自某个域和帮助他们的用户免受“钓鱼欺诈邮件“的 ...
- exchange 2003配置ASSP 反垃圾邮件
Exchange上第三方反垃圾邮件用得比较多的是ORF,它直接运行在虚拟SMTP服务上,配置非常的方便.ASSP(https://sourceforge.net/projects/assp/) 是一个 ...
- Exchange2010启用反垃圾邮件功能
今天邮箱服务器发现有大量发件人为空的邮件等待执行,也就是说空邮件堵塞了队列. 一般来说,空邮件就是别人发送垃圾邮件给你,你的服务上不存在这个收件人,那么系统会产生一封退信告诉你这封邮件已经被退.而ex ...
- 使用StringEscapeUtils对Java中特殊字符进行转义和反转义
https://blog.csdn.net/zdx1515888659/article/details/84966214 Java中转义字符反斜杠 \ 的代替方法 | repalceAll 内涵解析 ...
- Java 中的四种引用及垃圾回收策略
Java 中有四种引用:强引用.软引用.弱引用.虚引用: 其主要区别在于垃圾回收时是否进行回收: 1.强引用 使用最普遍的引用.如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会 ...
- 温故知新,.Net Core利用UserAgent+rDNS双解析方案,正确识别并反爬虫/反垃圾邮件
背景 一般有价值的并保有数据的网站或接口很容易被爬虫,爬虫会占用大量的流量资源,接下来我们参考历史经验,探索如何在.Net Core中利用UserAgent+rDNS双解析方案来正确识别并且反爬虫. ...
- 检查邮箱IP是否在国际反垃圾邮件组织的黑名单中
有时候邮件发不出去,很有可能就是邮件服务器的IP被国际上一些反垃圾组织列入黑名单了,这时你可以通过返回的邮件判断是否进入黑名单,或者通过以下查询地址看是否被列入,然后一个个申请移除: http://m ...
随机推荐
- [javascript] 对象拷贝
Object.prototype.clone = function() { var copy = (this instanceof Array) ? [] : {}; for (attr in thi ...
- Fiddler (五) Mac下使用Fiddler
Fiddler是用C#开发的. 所以Fiddler不能在Mac系统中运行. 没办法直接用Fiddler来截获MAC系统中的HTTP/HTTPS, Mac 用户怎么办呢? Fiddler可 ...
- Linux学习笔记16--Linux扩展权限
默认权限: 每一个终端都有一个umask属性,用于确定新建文件.新文件夹的默认权限. umask使用数字权限方式表示,如:022 一般来说,普通用户的默认umask是002,root用户的默认um ...
- jQuery中的事件与动画 (你的明天Via Via)
众所周知,页面在加载时,会触发load事件:当用户单击某个按钮时,会触发该按钮的click事件. 这些事件就像日常生活中,人们按下开关,灯就亮了(或者灭了),往游戏机里投入游戏币就可以启动游戏一样, ...
- Junit单元测试笔记
什么是单元测试? 单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确. 单元测试目的? 执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致. 白盒测试和单 ...
- C#开源项目汇总
Discuz nt: 一个开源的论坛项目.估计你现在逛过大大小小的论坛没有成百上千,也有几十个吧,其中是个论坛6个以上都是Discuz(以前大部分都是php版的),现 在官方也早就放出了DotNet( ...
- 关于Canvas模糊的问题
前言:当我在几个多月前,第一次在移动设备上使用canvas绘制内容的时候,我惊然地发现我绘制的图片以及文字居然都是模糊的!我的内心几乎是崩溃的,因为那是我第一个使用canvas的项目,是一个基于微信端 ...
- 30分钟手把手教你学webpack实战
30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解ba ...
- PCM(Pulse-code modulation)脉冲编码调制
在音频处理中,我们会经常听到PCM数据,那么什么是PCM数据呢? PCM数据就是模拟信号经过PCM以后的数字信号,PCM就是把音频信号由模拟信号(时间连续,取值连续)转为数字信号(时间离散,取值离散) ...
- 图解Android触摸事件分发
Android中触摸事件传递过程中最重要的是dispatchTouchEvent().onInterceptTouchEvent()和onTouchEvent()方法. View和Activity有d ...