C#中IPAddress类/Dns类/IPHostEntry类/IPEndPoint用法简介

本文介绍了C#中处理IP地址的几个核心类:IPAddress、Dns、IPHostEntry和IPEndPoint。讲解了它们的功能、常见方法和用法,包括获取主机IP地址、主机名、IPHostEntry对象,以及如何创建和使用IPEndPoint对象。通过示例代码展示了如何在C#中进行IP和DNS操作。
摘要由CSDN通过智能技术生成

C#IPAddress/Dns/IPHostEntry类/IPEndPoint用法简介

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

  .Net FrameWork类库内置了相关类用于处理IP地址的问题,这些类在System.Net命名空间下。这里主要对DNS类进行详细介绍。

IPAddress类提供了对IP地址的转换、处理等功能。其Parse方法可将IP地址字符串转换为IPAddress实例。

如:IPAddress ip = IPAddress.Parse(“192.168.1.1”); 

 

IPAddress   类提供了7个只读字段:

Any        表示本地系统可用的任何IP地址

Broadcast   表示本地网络的IP广播地址

IPv6Any    Socket.Bind方法用此字段指出本地系统可用的IP地址

IPv6Loopback    表示系统的回送地址

IPv6None     表示系统上没有可用的网络接口

Loopback    表示系统的回送地址

None   表示系统上没有可用的网络接口

 

Dns类提供了一系列静态的方法,用于获取提供本地或远程域名等功能,常用方法有: 

1) GetHostAddresses方法

获取指定主机的IP地址,返回一个IPAddress类型的数组。

函数原形为:

public static IPAddress[] GetHostAddresses(string hostNameOrAddress);

例如:

IPAddress[] ip=Dns.GetHostAddresses("www.cctv.com");

listBox1.Items.AddRange(ip);

 

2) GetHostName方法

获取本机主机名。例如:string hostname = Dns.GetHostName();

 

IPHostEntry类的实例对象中包含了Internet主机的相关信息。

常用属性有:AddressList属性和HostName属性。

AddressList属性作用:获取或设置与主机关联的IP地址列表,是一个IPAddress类型的数组,包含了指定主机的所有IP地址;HostName属性则包含了服务器的主机名。

 

Dns类中,有一个专门获取IPHostEntry对象的方法,通过IPHostEntry对象,可以获取本地或远程主机的相关IP地址。

  例如:

listBox1.Items.Add("搜狐新闻所用的服务器IP地址有:");

IPAddress[] ip = Dns.GetHostEntry("news.sohu.com").AddressList;

listBox1.Items.AddRange(ip);

listBox1.Items.Add("本机IP地址为:");

ip = Dns.GetHostEntry(Dns.GetHostName()).AddressList;

listBox1.Items.AddRange(ip);

 

C#中,IPEndPoint类包含了应用程序连接到主机上的服务所需的IP地址和端口信息。 

IPEndPoint类常用的构造函数为:public IPEndPoint(IPAddress, int);

        其中第一个参数指定IP地址,第二个参数指定端口号。

C#中IPAddress和IPEndPoint的关系 

IP addresses in C#

在.Net网络库里面最大的优点就是IP地址和端口被成对处理,相比于UNIX中用的方法真是一个巨大的令人欢迎的进步。.NET定义了两个类来处理关于IP地址的问题。

One of the biggestadvantages you will notice in the .NET network library is the way IPaddress/port pairs are handled. It is a fairly straightforward process thatpresents a welcome improvement over the old, confusing UNIX way. .NET definestwo classes in the System.Net namespace to handle various types of IP address information:

·        IPAddress

·        IPEndPoint

IPAddress

一个IP地址对象用来表示一个单一的IP地址,其值同时也可以应用在许多不同的方法里面。

An IPAddress object isused to represent a single IP address. This value is then used in varioussocket methods to represent the IP address. The default constructor for IPAddress is asfollows:

publicIPAddress(long address)

实际上,默认的构造函数几乎是用不到的,因为在该类里面许多的函数可以用来构造并操作IP地址对象。其中Parser()函数经常用来构造该类。

The defaultconstructor takes a long value and converts it to an IPAddress value. In practice, the default isalmost never used. Instead, several methods in the IPAddress class can beused to create and manipulate IP addresses. The Parse() method is often used to create IPAddress instances:

IPAddressnewaddress = IPAddress.Parse("192.168.1.1");

IPEndPoint

.NET框架用IPEndPoint 对象来表示一个特定的IP地址和端口的组合,应用该对象的场景多是在讲socket绑定到本地地址或者将socket绑定到非本地地址。

The .NET Frameworkuses the IPEndPoint object to represent a specific IP address/port combination. An IPEndPoint object isused when binding sockets to local addresses, or when connecting sockets toremote addresses.

 实例解析:

IPAddressip,如127.0.0.1”

IPEndPointip和端口对的组合,如127.0.0.1:80

·        IPAddress

构造一个IP地址对象IPAddress的构造函数是 

public

IPAddress(long address)

但通常情况下用不到它,因为有简单的方法可以使用如:

方法1

IPAddress.Any

方法2

IPAddress.Parse("192.168.1.1");

IPAddress.Any使用你机器上一个可用ip来初始化这个IP地址对象。

IPAddress.Parse("192.168.1.1");创建IPAddress对象的一个选择

·        IPEndPoint (IP地址和端口的组合)

创建方式如:两个参数分别表示IP地址和端口号

IPEndPoint ipEndPoint=new IPEndPoint(IPAddress.Any,2112)


:  IPAddress类、Dns类、IPHostEntry类和IPEndPoint类的使用方法。 


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

 

  (1)GetHostAddresses方法

 

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

 

  语法:

 

 

 

1
2
3
public static IPAddress[] GetHostAddresses (
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值