进行DNS查询的一个非常有用的工具是nslookup,可以使用它来查询DNS中的各种数据。可以在Windows的命令行下直接运行nslookup进入一个交互模式,在这里能查询各种类型的DNS数据。
DNS的名字解析数据可以有各种不同的类型,有设置这个zone的参数的SOA类型数据,有设置名字对应的IP地址的A类型数据,有设置邮件交换的MX类型数据。这些不同类型的数据均可以通过nslookup的交互模式来查询,在查询过程中可以使用 set type命令设置相应的查询类型。
如:
C:/>nslookup
Default Server: [202.106.184.166]
Address: 202.106.184.166
> set type=mx
> xuexibbs.com
Default Server: [202.106.184.166]
Address: 202.106.184.166
Non-authoritative answer:
xuexibbs.com MX preference = 10, mail exchanger = sinamx.xuexibbs.com
xuexibbs.com nameserver = ns1.xuexibbs.com
xuexibbs.com nameserver = ns3.xuexibbs.com
sinamx.xuexibbs.com internet address = 202.106.187.179
sinamx.xuexibbs.com internet address = 202.106.182.230
ns1.xuexibbs.com internet address = 202.106.184.166
ns3.xuexibbs.com internet address = 202.108.44.55
如果所要查的某域名的MX记录不存在,则出现与以下类似的提示:
C:/>nslookup
> set type=mx
> amaxit.com.cn
Default Server: [202.106.184.166]
Address: 202.106.184.166
*** 202.106.184.166 can’t find amaxit.com.cn: Non-existent domain
在邮件系统中使用自己的域名
假设你的邮件服务器地址是: 61.176.1.120
已经建了一条A记录: mail.mydomain.com A 61.176.1.120
对于MX记录已经存在的情况
如果MX记录已经存在,并且已经检查出是在某一个域名服务器上,您需要做的工作就是与您的域名服务商或该域名服务器的管理人员联系,把该MX记录按如下的形式进行修改:
您的域名 IN MX 10 mail.mydomain.com
对于MX记录还不存在的情况
要搞清楚您的域名确切的是在哪个域名服务器(DNS)中进行域名解析的,有两种办法,一种是查阅您注册该域名时提交的有关申请资料,得到当时受理申请的单位,与该受理申请的单位联系,让对方的相关人员帮您查清楚;另一种是在WinNT,Win2000或各种Unix操作系统中,通过使用nslookup得到。
找到您的域名服务器后,请与您的域名服务商或该服务器的管理人员联系,让对方为您增加一条MX记录,该记录的形式如下:
您的域名 IN MX 10 mail.mydomain.com
---------------------------------------------------------
在php中使用nslookup,大致方法是:exec("nslookup $hostName", $result);
当这个方法得不到值时,可以把引号改成重音号,一般就可以了,即:exec(`nslookup $hostName`,$result);