Windows操作系统上的一些名字解析

互联网 | 编辑: 2007-05-28 00:30:00转载-投稿 一键看全文

当您打开计算机开始访问网络资源时,就涉及到一个问题:名字解析,名字解析就是把需要访问的计算机名字解析成 IP 地址的过程。

Windows名字解析(1)

介绍

当您打开计算机开始访问网络资源时,就涉及到一个问题:名字解析,名字解析就是把需要访问的计算机名字解析成 IP 地址的过程。为什么需要有这个过程呢?原因是 TCP/IP 网络上的计算机之间是通过 IP 地址来相互通讯的。 IP 地址就好像是我们的门牌号码,网络上的每台计算机或每个网站都至少有一个 IP 地址, IP 地址是一个 32 比特长的数字,表示方式是每个 8 个比特之间加一个点,比如 10.80.141.70 。到这里就有一个问题了:您能够记住您经常访问的网站的 IP 地址吗?答案恐怕是否,因为这样一串数字并不便于普通人进行记忆。这就是为什么网络上的每台计算机至少有一个便于记忆的名字,一般人只要通过它们的名字而不是 IP 地址就可以访问了。如果 Windows 不能成功地把一个名字解析成 IP 地址,访问也就不可能进行了。下面我们就来讲讲 Windows 上有些什么类型的名字以及 Windows 是如何来做名字解析的。

Windows 上名字的类型

Windows 上有两类名字,一类是主机名字( Host Name )。主机名字最长有 255 个字符,可以包含数字、字母以及连字号 ”-“ 和点 ”.” 等。您的计算机的计算机名字或者您公司的服务器的计算机名字就是一种主机名字,比如 sh-fileserver 。而且,互联网上的网站域名也是一种主机名字,比如 www.microsoft.com 。

另一类名字是 NetBIOS 名字,大家可能会觉得比较陌生。 NetBIOS 名字是 Windows 上特有的一类名字,长度为 16 个字符,由 15 个字符和一个不可打印的 NetBIOS 名字后缀字符组成。 NetBIOS 名字后缀表示这个 NetBIOS 名字所代表的服务类型。比如说,一台 Windows 域控制器会有一个后缀为 0x 1C 的 NetBIOS 名字,网络中的其它计算机见到了这个 NetBIOS 名字就知道这是一台域控制器了。常见的 NetBIOS 后缀有 0x20 (文件和打印服务)、 0x00 (工作站服务)、 0x03 (报信者服务)等。您大可不必去记住这些复杂 NetBIOS 名字后缀,因为应用程序会根据要访问的服务类型来决定 NetBIOS 名字后缀的。

对应这两类名字, Windows 上有两类名字解析,分别是主机名字解析和 NetBIOS 名字解析。不同的应用程序会使用不同的名字解析。使用 WinSock (一种网络程序开发接口)开发的应用程序使用主机名字解析的,例如 Internet Explorer , ftp 等。有很多网络程序都是使用 WinSock 开发的。而大部分 Windows 组件会两种名字解析都用,只要有一类名字解析成功,就放弃另一类名字解析。典型的例子有访问网络上的共享文件或打印机,或者 ping 一台计算机。

下面我们要分别介绍两类名字解析过程。

主机名字解析

在介绍主机名字解析之前,我们先来了解一下 DNS ( Domain Name Service )。互联网上的域名是呈树状结构的,树状结构上的每一个节点就是一个 DNS 域名,例如 www.microsoft.com 和 www.msn.com 等都是 DNS 域名。 DNS 服务器负责将 DNS 域名解析成 IP 地址的网络服务。

Windows 解析主机名字时是按照以下顺序进行的。

查询 DNS 客户端缓存和 hosts 文件

首先检查主机名字是否存在于 DNS 客户端缓存或 hosts 文件中。 DNS 客户端缓存是用于存放 DNS 查询结果的。例如,您访问某个网站,通过查询互联网上 DNS 服务器得到这个网站的 IP 地址,这个网站的 DNS 名字以及它的 IP 地址就会添加到 Windows 的 DNS 客户端缓存中。您再次访问这个网站时, Windows 就不用再次查询互联网上 DNS 服务器了,会直接从 DNS 客户端缓存获得这个网站的 IP 地址,这可以很大地提高网络访问速度以及减少网络流量。但是, DNS 客户端缓存里的记录是有有效期的,也就是说在一段时间之后,这条记录会被从缓存中删掉,当再次访问这个网站时, Windows 就需要再次查询互联网上 DNS 服务器了。这样做的好处是如果这个网站的 IP 地址改变之后,您的计算机不会一直使用老的 IP 地址。在 Windows 上,您可以用 ipconfig /displaydns 命令来查询 DNS 客户端缓存里有什么纪录,或者使用 ipconfig /flushdns 来清除 DNS 客户端缓存里的纪录。

下面是 ipconfig /displaydns 的一个例子:

localhost

Record Name . . . . . : localhost

Record Type . . . . . : 1

Time To Live . . . . : 0

Data Length . . . . . : 4

Section . . . . . . . : Answer

A ( Host ) Record . . . : 127.0.0.1

www.msn.com.cn

Record Name . . . . . : www.msn.com.cn

Record Type . . . . . : 5

Time To Live . . . . : 33

Data Length . . . . . : 4

Section . . . . . . . : Answer

CNAME Record . . . . : cnmsn.qihoo.com

c.live.com

Record Name . . . . . : c.live.com

Record Type . . . . . : 1

Time To Live . . . . : 339

Data Length . . . . . : 4

Section . . . . . . . : Answer

A ( Host ) Record . . . : 207.46.216.55

hosts 文件是 Windows 上用来存放静态的主机名字和 IP 地址映射的,它放在 %SystemRoot%system32 drivers etc 目录下。如果您知道一个主机名字所对应的 IP 地址,而且这个名字不能通过 DNS 查询获得,就可以把这个主机名字和它的 IP 地址加到 hosts 文件中,下面是一个样本 hosts 文件里的内容:

127.0.0.1 localhost

10.22.80.16 testserver.test.com

10.54.94.97 rhinoserver

hosts 文件被修改保存之后, hosts 文件里的内容就立即被装载到 DNS 客户端缓存。如果 hosts 文件里包含错误的纪录,就会导致访问错误。有一些网络加速软件会把访问过的网站域名和它们的 IP 地址加到 hosts 文件中,这样可以减少 DNS 名字查询的时间。但是这会导致一个问题,如果某个网站的 IP 地址改变了,那就再也访问不到这个网站了,因为每次访问的都是老的那个 IP 地址。所以不建议把能够通过 DNS 解析的主机名字加到 hosts 文件里,这样可以避免不少问题。

提示:试试键盘 “← →” 可以实现快速翻页 

总共 4 页1234
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑