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