Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/11 9:22:32
C#教程:DNS类使用实例

C#教程:DNS类使用实例|方法

DNS类

IP地址是一种普遍应用于因特网、允许不同主机能够相互找到对方的寻址协议。IP地址由4个十进制的数字号码所组成,而每一个号码的值介于0~255之间,它虽然解决了网络上计算机的识别问题,但是IP地址不易记忆,因此域名系统(DNS)被开发出来,它专门用于将IP地址转换成有意义的文字,以方便识别记忆。

.Net FrameWork类库内置了相关类用于处理IP地址的问题,这些类在System.Net命名空间下。这里主要对DNS类进行详细介绍。DNS类常用方法及说明如表1所示。



表1 DNS类常用方法及说明

下面对比较重要的方法进行详细介绍。

(1)GetHostAddresses方法。返回指定主机的Internet协议(IP)地址。

语法:

public static IPAddress[] GetHostAddresses (

string hostNameOrAddress

)

参数说明如下。

hostNameOrAddress:要解析的主机名或IP地址。

返回值:一个IPAddress类型的数组,该类型保存由hostNameOrAddress参数指定的主机的IP地址。

(2)GetHostByAddress方法。用于获取IP地址的DNS主机信息(以发生成重载),重载方法为Dns.GetHostByAddress (IPAddress)和Dns.GetHostByAddress (String),下面分别进行介绍。

Dns.GetHostByAddress (IPAddress)

根据指定的IPAddress创建IPHostEntry实例。

语法:

public static IPHostEntry GetHostByAddress

(

IPAddress address

)

参数说明如下。

address:一个IPAddress。

返回值:一个IPHostEntry。

Dns.GetHostByAddress (String)

根据IP地址创建IPHostEntry实例。

语法:

public static IPHostEntry GetHostByAddress

(

string address

)

参数说明如下。

address:IP地址。

返回值:一个IPHostEntry实例。

(3)GetHostName方法。用于获取本地计算机的主机名。

语法:

public static string GetHostName ()

返回值:包含本地计算机的DNS主机名的字符串。

(4)Resolve方法。将DNS主机名或IP地址解析为IPHostEntry实例。

语法:

public static IPHostEntry Resolve

(

string hostName

)

参数说明如下。

hostName:DNS样式的主机名或IP地址。

返回值:一个IPHostEntry实例,包含有关hostName中指定主机的地址信息。

下面列举几种常用的DNS类的使用方法。

获得主机名的实现代码如下:

private void button1_Click(object sender, EventArgs e)

{

String hostName = Dns.GetHostName();

IPHostEntry ipH = new IPHostEntry();

ipH = Dns.Resolve(hostName);

this.textBox1.Text = hostName;

}

根据IP地址或计算机名获得计算机名的实现代码如下:

private void button2_Click(object sender, EventArgs e)

{

IPHostEntry hostInfo = Dns.Resolve(this.textBox1.Text.Trim().ToString());

string strHost = hostInfo.HostName.ToString();

MessageBox.Show(strHost);

}

获得IP列表的实现代码如下:

private void button4_Click(object sender, EventArgs e)

{

IPHostEntry IPH = Dns.GetHostByName(this.textBox1.Text);

IPAddress[] myIp = IPH.AddressList;

foreach (IPAddress ips in myIp)

MessageBox.Show(ips.ToString());

}




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759