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)地址。

  语法:

双击代码全选

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实例。

  语法:

双击代码全选

public static IPHostEntry GetHostByAddress
(
  IPAddress address
)

  参数:

  address:一个IPAddress。

  返回值:一个IPHostEntry。

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

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

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

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

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

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

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

  3. Java中TimeZone类的常用方法

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

  4. java 中String类的常用方法总结,带你玩转String类。

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  5. java 中String类的常用方法总结,玩转String类

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  6. Java中BigDecimal类的常用方法

    1.简介 BigDecimal类位于java.math.BigDecimal包下.使用此类可以完成大的小数操作,而且也可以使用此类进行精确的四舍五入,这一点在开发中经常使用. 对于不需要任何准确计算精 ...

  7. java中Vector类的常用方法

    Vector类是实现List接口,所以继承的方法就不在这里讲了 https://www.cnblogs.com/xiaostudy/p/9503199.html public void add(int ...

  8. Java中String类的常用方法

    判断功能的方法 public boolean equals (Object anObject) :将此字符串与指定对象进行比较. public boolean equalsIgnoreCase (St ...

  9. Java中StringBuffer类的常用方法

    StringBuffer:StringBuffer类型 描述:在实际应用中,经常回遇到对字符串进行动态修改.这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加. ...

随机推荐

  1. 浪漫爱心--第三方开源--PeriscopeLayout

    点此下载 使用很简单,首先在xml里面添加 <Button android:id="@+id/btn_start" android:layout_width="wr ...

  2. BEC translation exercise 7

    在挑选时我们完全出自疏忽而漏过了这篇短文.In making the selection we passed this short piece by quite inadvertently. we l ...

  3. python 生成唯一字符串UUID与MD5

    1 Python使用UUID库生成唯一ID UUID是128位的全局唯一标识符,通常由32字节的字符串表示,保证时间和空间的唯一性 通过MAC地址.时间戳.命名空间.随机数.伪随机数来保证生成ID的唯 ...

  4. 【LeetCode】002 Add Two Numbers

    题目: You are given two non-empty linked lists representing two non-negative integers. The digits are ...

  5. 5.7 Windows常用网络命令

    5.7 Windows常用网络命令 •ping •netstat •winipcfg/ipconfig •tracert •route 5.7.1 ping命令 •功能 –它是用来检查网络是否通畅或者 ...

  6. mybatis与oracle使用总结

    Oracle使用总结 1.新建表删除表 新建表语句: CREATE TABLE +表名{ } create table AFA_USER ( USER_ID VARCHAR2() not null, ...

  7. PADS Layout CAM 的中高级焊盘选项

    PADS Layout CAM 的中高级焊盘选项 PADS CAM Gerber 输出非常灵活. 以至于很多人跳坑. 以这个这选项,最好的方式就是不勾.

  8. Ant能干什么,编译?打包!

    Ant轻便,灵巧,不像Maven一般沉重. 但是,这是我之前的看法.之前一直使用Eclipse自带的编译工具进行编译,然后采用ant进行打包:但是Eclipse编译工具编译之后的jar包参数名称之类的 ...

  9. 异常:java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlType

    这个是jdK版本的问题的. 本地编译的jar包是1.8的,但是跑jar包的环境jdk版本是1.9的. 升级1.9之后由于jdk当方面的取消了几个jar,所以导致编译起不来. 明天研究一下如何添加jar ...

  10. MySQL 预处理语句prepare、execute、deallocate的使用

    所以对于中文乱码,需要去check的地方有如下3个:1.mysql窗口的字符编码(xshell连接的远程工具的字符集设置):2.数据库的字符编码(show variables like '%char% ...