C# 获取主机对应的IP地址和主机名

一、Dns类介绍:

命名空间:using System.Net;

主要功能:提供简单的域名解析功能

主要方法:

(1) GetHostEntry() :将主机名或 IP 地址解析为 IPHostEntry 实例;

(2) BeginGetHostEntry(String, AsyncCallback, Object):将主机名或 IP 地址异步解析为 IPHostEntry 实例;

功能类似的还有Resolve()方法,但已经过时;


(3) GetHostAddresses:返回指定主机的 Internet 协议 (IP) 地址;

(4) BeginGetHostAddresses:异步返回指定主机的 Internet 协议 (IP) 地址;


(5) EndGetHostAddresses/EndGetHostEntry结束对 DNS 信息的异步请求;


(6) GetHostName:获取本地计算机的主机名(通过DNS服务器来获取本地信息);

二、IPHostEntry类介绍:

主要功能:为 Internet 主机地址信息提供容器类

IPHostEntry类将一个域名系统 (DNS) 主机名与一组别名和一组匹配的 IP 地址关联;通常和Dns 类一起使用。

重要属性:

(1) HostName:获取或设置主机的DNS名称;

(2) AddressList:获取或设置与主机关联的IP地址列表;

三、实现代码:

实现功能:输入要解析的DNS名,获取对应的主机名和IP地址

代码如下:

            try
            {
                //用DNS将主机名解析为IPHostEntry实例
                IPHostEntry ipHost = Dns.GetHostEntry(DNSNameTextBox.Text);
                foreach (IPAddress ip in ipHost.AddressList)
                {
                    //获取IP地址的地址簇
                    string ipAddr = ip.AddressFamily.ToString();
                    IPListBox.Items.Add("IP Address: "+ipAddr.ToString());
                    IPListBox.Items.Add("  IP: " + ip.ToString());
                }
                //获取主机名
                HostNameTextBox.Text = ipHost.HostName;
            }
            catch (Exception exc)
            {
                MessageBox.Show("Unable to process the request, beacuse the following problem occurred: "+exc.Message);
            }

你可能感兴趣的:(exception,String,object,C#,internet,DNS服务器)