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

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

  表 DNS类的常用方法及说明

名称 说明
BeginGetHostAddresses 异步返回指定主机的Internet 协议 (IP) 地址
BeginGetHostByName 开始异步请求关于指定DNS主机名的IPHostEntry信息
BeginGetHostEntry 已重载。 将主机名或IP地址异步解析为IPHostEntry实例
BeginResolve 开始异步请求将DNS主机名或IP地址解析为IPAddress实例
EndGetHostAddresses 结束对DNS信息的异步请求
EndGetHostByName 结束对DNS信息的异步请求
EndGetHostEntry 结束对DNS信息的异步请求
EndResolve 结束对DNS信息的异步请求
GetHostAddresses 返回指定主机的Internet协议(IP)地址
GetHostByAddress 已重载。 获取IP地址的DNS主机信息
GetHostByName 获取指定DNS主机名的DNS信息
GetHostName 获取本地计算机的主机名
GetType 获取当前实例的类型
GetHostEntry 已重载。 将主机名或IP地址解析为IPHostEntry实例
Resolve 将DNS主机名或IP地址解析为IPHostEntry实例

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

  (1)GetHostAddresses方法

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

  语法:

双击代码全选
1
2
3
public static IPAddress[] GetHostAddresses (
  string hostNameOrAddress
)

  参数:

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

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

  (2)GetHostByAddress方法

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

  l     Dns.GetHostByAddress (IPAddress)

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

  语法:

双击代码全选
1
2
3
4
public static IPHostEntry GetHostByAddress
(
  IPAddress address
)

  参数:

  address:一个IPAddress。

  返回值:一个IPHostEntry。

  l     Dns.GetHostByAddress (String)

  根据IP地址创建IPHostEntry实例。

  语法:

双击代码全选
1
2
3
4
public static IPHostEntry GetHostByAddress
(
  string address
)

  参数:

  address:IP地址。

  返回值:一个IPHostEntry实例。

  (3)GetHostName方法

  获取本地计算机的主机名。

  语法:

  public static string GetHostName ()

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

  (4)Resolve方法

  将DNS主机名或IP地址解析为IPHostEntry实例。

  语法:

双击代码全选
1
2
3
4
public static IPHostEntry Resolve
(
  string hostName
)

  参数:

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

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

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

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

双击代码全选
1
2
3
4
5
6
7
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或计算机名获得计算机名的实现代码如下:

双击代码全选
1
2
3
4
5
6
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列表的实现代码如下:

双击代码全选
1
2
3
4
5
6
7
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());
    }

原文地址:http://tech.ddvip.com/2008-11/122587395089331.html

[转载]C#.NET中Dns类的常用方法及说明的更多相关文章

  1. C#.NET中Dns类的常用方法及说明

    IP是一种普遍应用于因特网.允许不同主机能够相互找到对方的寻址协议.IP地址由4个十进制的数字号码所组成,而每一个号码的值介于0~255之间,它虽然解决了网络上计算机的识别问题,但是IP地址确不容易记 ...

  2. 【转载】Java中String类的方法及说明

    转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.      String sc_ ...

  3. java中File类的常用方法总结

    java中File类的常用方法 创建: createNewFile()在指定的路径创建一个空文件,成功返回true,如果已经存在就不创建,然后返回false. mkdir() 在指定的位置创建一个此抽 ...

  4. 【转载】C#中SqlCommand类的作用以及常用方法

    在C#的数据库操作过程中,SqlCommand类一般用于Sqlserver数据库的SQL语句的执行,包括Select语句.Update语句.Delete语句以及SQL存储过程等,SqlCommand的 ...

  5. 【转载】C#中SqlConnection类的作用以及常用方法

    在C#的数据库编程中,SqlConnection类主要用于连接Sqlserver数据库,使用SqlConnection类的实例方法我们可以打开Sqlserver数据库连接以及获取数据完毕后关闭数据库连 ...

  6. 【转载】C#中string类使用Replace方法来替换字符串

    在C#的字符串操作过程中,有时候需要替换字符串中的某个子字符串,此时就可以使用到字符串类自带的Replace方法来实现,Replace方法将查找到所有符合被替换的子字符串,然后将之全部替换为目标字符串 ...

  7. 【转载】C#中string类使用Remove方法来移除指定位置的字符

    在C#的字符串操作过程中,有时候需要将字符串中指定位置的字符移除,此时就可能使用到字符串类string类中的Remove方法,此方法允许指定移除开始的开始的索引位置,以及移除的长度信息等,共有2个重载 ...

  8. 【转载】C#中string类使用Substring方法截取字符串

    在C#的字符串操作过程中,截取字符串是一种常见的字符串操作,可使用string类的Substring方法来完成字符串的截取操作,该方法支持设定截取的开始位置以及截取的字符串长度等参数,Substrin ...

  9. Java中TimeZone类的常用方法

    一.TimeZone类的定义 TimeZone类是一个抽象类,主要包含了对于时区的各种操作,可以进行计算时间偏移量或夏令时等操作 二.TimeZone类的常用方法 1.getAvailableIDs( ...

随机推荐

  1. background不能填充margin的问题

    CSS2 中有5个主要的背景(background)属性,它们是: background-color: 指定填充背景的颜色.background-image: 引用图片作为背景.background- ...

  2. 关于Eclipse插件开发(一)

    plugin.xml是插件和Eclipse内核的接口,Eclipse就像一所大宅子.它的外墙(plugin.xml)有很多门(扩展点), 要熟练进入这座大宅子,就得先搞清楚它有那些门(扩展点). 插件 ...

  3. Spark技术内幕:Client,Master和Worker 通信源码解析

    http://blog.csdn.net/anzhsoft/article/details/30802603 Spark的Cluster Manager可以有几种部署模式: Standlone Mes ...

  4. Linux系统各发行版镜像下载

    Linux系统各发行版镜像下载(2014年10月更新),如果直接下载不了,请使用迅雷下载.并且注意,我的下载地址,在 迅雷 里才起作用. 包括Ubuntu,Fedora,SUSE,Red Hat En ...

  5. Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17

    操作环境 操作系统:Mac Os Lion 虚拟主机:VMware Fusion 虚拟系统:Centos 5.5+ 操作用户:Root 实现目的:搭建LNMP环境. 安装依赖库和开发环境 #依赖库和开 ...

  6. Attribute (一)

    本文导读 1.概念 2.自定义一个 Attribute 概念       Attribute是一个特殊的类,我们知道 .NET 程序集 具有自描述的特性(由于元数据),Attribute和.NET的元 ...

  7. jQuery 源码分析6: jQuery 基本静态方法(二)

    jQuery.extend({ // 遍历obj的所有值 // args 这参数只能内部调用的会用到 // 注意到,如果回调函数调用失败会直接跳出并中止遍历 // 当有args数组时,使用apply调 ...

  8. css3中的BFC,IFC,GFC和FFC(转载)

    作者原文网址:http://www.cnblogs.com/dingyufenglian/p/4845477.html   What‘s FC? 一定不是KFC,FC的全称是:Formatting C ...

  9. STL的简介

    Standard Template Library,(标准模板库)<来自百度百科的整理> ————可复用性(reusability) STL是基于模板,内联函数的使用使得生成的代码短小高效 ...

  10. 九度OJ 1499 项目安排 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1499 题目描述: 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时 ...