IPAddress、IPHostEntry、IPEndPoint、DNS

作者:追风剑情 发布于:2019-11-12 20:43 分类:C#

示例:

using System;
using System.Net;
using System.Net.NetworkInformation;
using System.Text;

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            //DNS: 域名系统
            //HostName: 主机DNS名称
            //AddressList: IP地址列表
            //Aliases: 与主机关联的别名列表

            //IPAddress类提供了主机IP地址及相关信息,包括IP圆环地址Loopback、
            //IP广播地址Broadcast以及对IPv6协议的支持。

            //IPHostEntry类将域名系统(DNS)主机名和别名与匹配的IP地址关联
            //IPEndPoint类将网络端点表示为IP地址和端口号
            //DNS是一个静态类,提供一系列静态方法来获取本地或远程域名

            //获取指定DNS主机名的主机信息
            IPHostEntry ipHost = Dns.GetHostByName("www.baidu.com");
            Console.WriteLine("www.baidu.com的主机名为: " + ipHost.HostName);
            //通过IP地址获取主机名
            IPHostEntry ipHost1 = Dns.GetHostByAddress("127.0.0.1");
            Console.WriteLine("127.0.0.1的主机名为: "+ipHost1.HostName);
            foreach (string aliase in ipHost1.Aliases)
                Console.WriteLine("别名: "+ aliase);
            //主机名或IP地址解析为IPHostEntry
            IPHostEntry ipHost2 = Dns.Resolve(ipHost1.HostName);
            //获取本地系统的主机名
            string hostName = Dns.GetHostName();
            //获得本机局域网所有IP地址
            IPAddress[] addr = Dns.GetHostByName(hostName).AddressList;
            foreach (IPAddress ip in addr)
                Console.WriteLine("本机IP地址为: " + ip.ToString());
            //获得本机主机名
            Console.WriteLine("本机主机名为: "+Dns.GetHostEntry(addr[0]).HostName);
            //创建本机端口
            IPAddress localIp = IPAddress.Parse("127.0.0.1");
            //IPEndPoint用来封装IP和端口
            IPEndPoint iep = new IPEndPoint(localIp, 80);

            Console.WriteLine("IP端点:"+iep.ToString());
            Console.WriteLine("IP端口:"+iep.Port);
            //地址族指底层通信方式
            Console.WriteLine("IP地址族:"+iep.AddressFamily);
            Console.WriteLine("可分配端口最大值: "+IPEndPoint.MaxPort);
            Console.WriteLine("可分配端口最小值: "+IPEndPoint.MinPort);

            Console.ReadLine();
        }
    }
}


运行测试
111.png

IPAddress类的常用公共方法
方 法 说 明
Equals 比较两个IP地址
GetAddressBytes 以字节数组形式提供IPAddress的副本
HostToNetworkOrder 将数字由主机字节顺序转换为网络字节顺序。网络字节序默认是大端(即第一个字节是最高位,最后一个字节是最低位),Windows系统是小端
NetworkToHostOrder 将数字由网络字节顺序转换为主机字节顺序
IsLoopBack 指示指定的IP地址是否是返回地址,例如127.0.0.1
Parse 将标准表示法的IP字符串转成IPAddress实例
TryParse 确定字符串是否为有效的IP地址

标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号