Visual C# DNS开发
- IP协议和DNS简介
- IP协议简介
- 域名简介
- 与DNS相关类的简介
- Dns类
- IPHostEntry类
- IPAddress类
- DnsPermission类
- DNS程序示例
- 获取本地主机名称
- 解析主机
- 通过主机名获取主机信息
- 通过UP地址获取主机信息
- 将整数转换为IP地址格式
- DNS集成服务系统
- 本章小结
IP协议和DNS简介
IP协议简介
IP基本概念:
网际层是整个TCP/IP协议簇的重点,定义了IP,ICMP,ARP,RARP等协议。其中,IP是建立TCP/IP网络的基本协议,向其他运行在网际层中或网际层之上的协议提供了数据传送服务。IP所能提供的服务是无连接和不可靠的(尽力而为的服务):
- 封装数据到IP数据报。
- 将IP数据报传送到目的地
- 对数据进行分段
- 路由选择
|
|
IP基本操作:
IP协议的工作原理是:IP数据包到达网关后,本地网络接口去掉网络头(如果存在网络头),将结果传送给IP模块。由这个IP模块决定本地网络地址,然后传送数据报到本地网络接口。该本地网络接口创建一个本地网络头加在数据报上,将数据报传送到目的主机。在目的主机上,其网络接口去掉数据报上的网络头,将结果交给IP模块。IP模块决定把数据报向哪一个应用程序传送,然后系统发出系统调用,IP模块返回源地址和其他参数。
IP地址
在IPv4的IP地址包括4个字节,它定义了两个部分:NETID和HOSTID。其中NETID标识一个网络,而HOSTID标识在该网络上的一个主机。因此因特网地址是一种层次型地址,携带有对象位置的信息。
IP地址的一般格式为:类别 + Netid + Hostid,其中:
- 类别:用来区分IP地址的类型:
- 网络标识(Netid):表示入网主机所在的网络
- 主机标识(Hostid):表示入网主机在本网段中的标识。
通常将因特网IP地址分成5种类型:(A类、B类、C类、D类、E类)
A类地址:
网络标识占1个字节,第1位为“0”,允许有27-2=126个A类网络,每个网络大约允许有1670万台主机。通常分配给拥有大量主机的网络,如一些大公司(如IBM公司等)和因特网主干网络。net-id范围是1~126。
B类地址:
网络标识占2个字节,第1,2位为“10”,允许有214=16383个网络,每个网络大约允许有65533台主机。通常分配给结点比较多的网络,如区域网。net-id范围是128~191。
C类地址:
网络标识占3个字节,第123位为110,允许有221=2,097,151个网络,每个网络大约允许有254台主机。通常分配给结点比较少的网络,如校园网。一些大的校园网可以拥有多个C类地址。net-id范围是192~223。
D类地址:
前4位为“1110”,用于多址投递系统(组播)。目前使用的视频会议等应用系统都采用了组播技术进行传输。net-id范围是224~239。
E类地址:
前4位为“11110”,保留未用。net-id范围是240~255。
特殊地址:
域名简介
- 因特网采用了层次树状结构的命名方法。
- 任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。
- 域名的结构由若干个分量组成,各分量之间用点隔开: … .三级域名.二级域名.顶级域名
- 各分量分别代表不同级别的域名。
DNS用于域名和IP地址的解析,其工作原理如下:
- DNS客户向本地的DNS服务器发出解析请求
- 如果该DNS服务器本身含有客户所需要的数据,则直接返回给客户,如果没有,则服务器与其他DNS服务器联系,从其他DNS服务器上获取数据,然后返回给用户
- 如果解析不成功,则返回解析失败的异常信息
与DNS相关类的简介
DNS类
Dns 类是一个静态类,它从 Internet 域名系统 (DNS) 检索关于特定主机的信息。参看MSDN:
ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemNetDnsMembersTopic.htm
公共方法:
IPHostEntry类
IPHostEntry 类将一个域名系统 (DNS) 主机名与一组别名和一组匹配的 IP 地址关联。参看MSDN:
ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemNetIPHostEntryMembersTopic.htm
公共构造函数
公共属性:
AddressList
受 .NET Framework 精简版的支持。 |
获取或设置与主机关联的 IP 地址列表。 |
Aliases
受 .NET Framework 精简版的支持。 |
获取或设置与主机关联的别名列表。 |
HostName
受 .NET Framework 精简版的支持。 |
获取或设置主机的 DNS 名称。 |
IPAddress类
参看MSDN:ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemNetIPAddressMembersTopic.htm
公共构造函数
公共字段
公共属性
公共方法
Equals
受 .NET Framework 精简版的支持。 |
已重写。比较两个 IP 地址。 |
HostToNetworkOrder
受 .NET Framework 精简版的支持。 |
已重载。将值由主机字节顺序转换为网络字节顺序。 |
IsLoopback
受 .NET Framework 精简版的支持。 |
指示指定的 IP 地址是否是环回地址。 |
NetworkToHostOrder
受 .NET Framework 精简版的支持。 |
已重载。将数字由网络字节顺序转换为主机字节顺序。 |
Parse
受 .NET Framework 精简版的支持。
|
将 IP 地址字符串转换为 IPAddress 实例。 |
ToString 受 .NET Framework 精简版的支持。 |
已重写。将 Internet 地址转换为标准表示法。 |
DnsPermission类
用于控制对网络上域名系统 (DNS) 服务器的访问权限。默认权限允许所有的本地和 Intranet 区域的应用程序访问 DNS 服务,并且 Internet 区域的应用程序没有 DNS 权限。MSDN参看:
ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemNetDnsPermissionMembersTopic.htm
公共构造函数
公共方法
Deny(从 CodeAccessPermission 继承) |
防止调用堆栈中处于较高位置的调用方通过调用此方法的代码来访问由当前实例指定的资源。 |
Equals(从 Object 继承) |
已重载。确定两个 Object 实例是否相等。 |
PermitOnly(从 CodeAccessPermission 继承) |
防止调用堆栈中处于较高位置的调用方通过调用此方法的代码来访问除当前实例指定的资源外的所有资源。 |
Union
|
已重写。创建一个是当前权限实例与指定权限实例的并集的权限实例。 |
posted on 2006-11-06 16:45
阿土仔的世界 阅读(1175)
评论(1) 编辑 收藏 引用 网摘 所属分类:
网络编程