Contents

域名解析

什么是域名解析?

域名解析就是将域名解析成IP地址

IP地址是网络上标识站点的数字地址,但是IP地址相对来说记忆困难

所以为了方便记忆,采用域名来代替IP地址标识站点地址。

域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务

IPHostEntry类

命名空间:System.Net

类名:IPHostEntry

主要作用:域名解析后的返回值 可以通过该对象获取IP地址、主机名等等信息

该类不会自己声明,都是作为某些方法的返回值返回信息,我们主要通过该类对象获取返回的信息

关键成员

IPHostEntry host = new IPHostEntry();
//获取关联IP
host.AddressList
//获取主机别名列表
host.Aliases
//获取DNS名称
host.HostName

Dns类

命名空间:System.Net

类名:Dns

主要作用:Dns是一个静态类,提供了很多静态方法,可以使用它来根据域名获取IP地址

常用方法

获取本地系统的主机名

print(Dns.GetHostName());

获取指定域名的IP信息

同步获取

private void GetHostEntry()
{
    IPHostEntry entry = Dns.GetHostEntry("www.baidu.com");
    //获取ip地址
    for (int i = 0; i < entry.AddressList.Length; i++)
    {
        print("IP地址:" + entry.AddressList[i]);
    }
    //获取主机名
    for (int i = 0; i < entry.Aliases.Length; i++)
    {
        print("主机别名:" + entry.Aliases[i]);
    }
    //获取DNS名称
    print("DNS服务器名称" + entry.HostName);
}

异步获取

private async void GetHostEntry()
{
    Task<IPHostEntry> task = Dns.GetHostEntryAsync("www.baidu.com");
    await task;
    //获取ip地址
    for (int i = 0; i < task.Result.AddressList.Length; i++)
    {
        print("IP地址:" + task.Result.AddressList[i]);
    }
    //获取主机名
    for (int i = 0; i < task.Result.Aliases.Length; i++)
    {
        print("主机别名" + task.Result.Aliases[i]);
    }
    //获取DNS名称
    print("DNS服务器名称" + task.Result.HostName);
}

总结

如果你不知道对方的IP地址,想通过域名和对方进行通信

我们可以通过Dns类通过域名得到IP地址后再和对方建立连接并通信