和网络打交道就很难离开域名解析系统,至少目前看起来是这个样子的。
我在这篇文章
中简单地介绍过域名解析系统:
简单的讲,互联网的主机靠IP来区分,要访问一台主机上的服务(HTTP、 FTP、EMAIL、DATABASE等)我们首先要知道对方的IP地址。但是互联网的主机千千万,抽象的IP地址根本无法记忆,而域名就是给这个地址起一个好记的名字。所以,我们就可以通过www.baidu.com这样的域名来访问到百度,通过www.taobao.com这样的域名来访问到淘宝。
而从域名到IP的过程,就是域名解析,是由域名解析服务器(Name Server)来完成的。
其实DNS不单单可以干域名到IP的事情,还可以干好多事情,比如CNAME,给域名整个别名,MX设置域名的邮件交换记录等等。Windows比较常用的和DNS相关当属nslookup了,当时使用起来相当不便,尤其是对我这种记忆力不好的人而言。大多时候涉及域名解析的,我都用ping来测试,但是ping只能测试A记录,并且涉及DNS缓存的问题。Linux系统上dig的功能就强大好多了,但是一则要去Linux下操作,二则要命令行还是不如图形界面方便。于是大概在2011年前后,我就有个想法,写一个桌面域名查询工具,方便自己使用。
说起来容易,做起来很难,尤其是对我这种编程菜鸟而言。
域名解析涉及好多内容,为了实现我想要的功能,我仔细学习了下列文档
- Domain Name System (DNS) Parameters
- RFC 1034: DOMAIN NAMES - CONCEPTS AND FACILITIES
- RFC 1035: Domain Names - Implementation and Specification
- RFC 3596: DNS Extensions to Support IP Version 6
- RFC 4291: IP Version 6 Addressing Architecture
- RFC 3596: A Recommendation for IPv6 Address Text Representation
(实际上学习的比这要多,基本上每条记录都涉及一个RFC,但是时隔太久,都忘记了)
然后不断尝试和调试,终于实现了我期望的诸多功能。
外观有点难看
支持的查询类型
为了方便,我在程序中内置了一些DNS服务器
我将这个程序发布到http://download.cnet.com 以及 http://www.softpedia.com
- http://download.cnet.com/EzDig/3000-2085_4-75689668.html
- http://www.softpedia.com/get/Network-Tools/IP-Tools/EzDig.shtml
从这两个站,大概过来一万次左右的下载吧。
并且收到一些热心用户的反馈,比如一个国外大学计算机系的教授,用我这个程序给学生们讲解DNS系统,并给我发了一封邮件说我界面上的recuse拼错了,应该是recurse,看了一下,我还没有改过来,惭愧。另外最兴奋的莫过于softpedia.com 的编辑,给我的软件写了个Review,并给了这款软件五星好评,真是受宠若惊啊。
还写了几篇博客,介绍一些相关内容
- How to Use Ezdig to Determine the Version of BIND
- How To Hide BIND DNS Sever Version
- How to convert an ipv6 address to its standard text presentation under Windows XP
在这之后把这款软件升级到了3.0版本,加入了DNSSEC,递归查询等支持
但是后来忙于工作,就懒得去两个下载站发布了,博客也懒得写了。
一晃过了5年多,好多技术细节我都忘记的一干二净了。
但是这个工具基本每天都会用到。
前两天看IPFS的介绍,号称要颠覆HTTP,还有个IPNS子系统,域名解析系统也要被颠覆啦。吓得我赶紧写篇文章记录一下。以后回忆起来,可以和人说,在那个还用HTTP以及DNS的上古时代,我还曾经做过一个垃圾小工具呢。😭
This page is synchronized from the post: 介绍一个我几年前做的小工具 EzDig