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());
}