网络命名空间
.NET Framework 类库在System.Net 和System.Net.Sockets命名空间中提供了网络编程功能。这两个命名空间允许你处理从 Internet 连接和基于套接字的编程的方方面面。
下面是 System.Net 命名空间的几个类:
· IPAddress:返回一个 IP 网络上的一台计算机的 IP 地址(xxx.xxx.xxx.xxx格式)。
· DNS:提供简单的域名解析功能。如果在 DNS 表中有多个条目,返回多个实例。
· IPHostEntry:微软帮助定义IPHostEntry类作为 Internet 主机地址信息的一个容器。它使用一个别名数组和一个匹配 IP 地址数组关联到一个 DNS 主机名。这个类是 DNS 类的一个辅助类。
名称解析
DNS 类是一个静态类,它允许你很容易地从 Internet 域名系统(DNS,Internet Domain Name System)查询一台指定的主机。它要求 Internet 连接要能正确地动作。DNS 查询获取的主机信息是通过一个IPHostEntry对象返回的。如果指定的主机在 DNS 数据库中有多个条目,那么IPHostEntry对象就包含多个 IP 地址和别名。你可以使用一个 for 循环来访问所有地址。
下面是可以用来获取主机信息的三个方法:
· GetHostByName:使用传递给该方法的名称检索一个主机。
· GetHostByAddress:使用传递给该方法的地址检索一个主机。
· GetHostName:返回一台主机的名称。
调用上面任何一个 DNS 方法都会返回IPHostEntry类的一个实例。下面的代码使用指定的 CNET 主机名创建IPHostEntry的一个实例:
IPHostEntryinetServer = Dns.Resolve("www.cnet.com");
或者,其 VB.NET 等效代码:
Dim inetServer As IPHostEntry
inetServer = Dns.Resolve(www.cnet.com)
有了具有 IP 地址的IPHostEntry对象,我们就可以使用它们作为IPAddress对象。
处理 IP 地址
IPAddress类可以简化对 IP 网络地址的处理。使用一个 IP 地址作为构造器可以很简单地创建这个类的一个新实例,但是最好还是将其与System.Net 的 DNS 类相结合。一旦 DNS 类被用来填充一个IPHostEntry对象,它就使用一个或多个IPHost对象填充,这些IPHost对象包含有使用 DNS 对象解析的地址。
下面的代码列表(C# 控制台应用程序)访问这些对象:
Using System;
Using Sytem.Net;
namespace BuilderExamples {
class BuilderIPAddress {
static void Main(string[] args) {
try {
IPHostEntryiphe = Dns.Resolve("www.microsoft.com");
foreach (IPAddressaddr in iphe.AddressList) {
Console.WriteLine("AddressFamily:
" + addr.AddressFamily.ToString());
Console.WriteLine("Address: " + addr.ToString());
} } catch (Exception e) {
Console.WriteLine("Error: " + e.ToString());
} } } }