c#网络应用编程第03章IP地址转换与网卡信息检测
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. IPInterfaceProperties类 可以利用这个类检测本机所有网络适配器支持的各种地址
3. PhysicalAddress类 提供了网络适配器的媒体访问控制(MAC)地址。
19
1.NetworkInterface类
➢ 对于本机的每个网络适配器,该数组中都包含一个Networ kInterface对象与之对应。
➢ 该类提供的Send和SendAsync方法将Internet控制消息 协议(ICMP)回送请求消息发送到远程计算机并等待来自该 计算机的ICMP回送答复消息。
➢ 与Ping类一起使用的类型有: 1. IPStatus枚举:定义描述 ICMP 回送请求消息结果的状态 代码 2. PingOptions类:控制如何传输 Ping 数据包 3. PingReply类:提供有关 Send 或 SendAsync 操作的状 态及产生的数据的信息
20
➢ NetworkInterface类常用的属性和方法
属性及方法
说明
Name属性
获取网络适配器的名称
Speed属性
获取网络适配器的速度(bit/秒)
GetAllNetworkInterfaces方法 返回描述本地计算机上的所有网络适配器对象
GetIPProperties方法
回描述此网络适配器配置的对象
GetIsNetworkAvailable方法 指示是否有任何可用的网络连接
GetPhysicalAddress方法
返回此适配器的媒体访问控制(MAC)地址
Supports方法
指示接口是否支持指定的协议(IPv4或IPv6)
21
2.IPInterfaceProperties类: ➢ 检测本机所有网络适配器支持的各种地址(IPv4和IPv6的
22
➢ IPInterfaceProperties类常用的属性和方法
属性及方法
说明
AnycastAddresses属性
获取分配给此接口的任意广播IP地址
DhcpServerAddresses属性 获取此接口的动态主机配置协议(DHCP)服务器的地址
DnsAddresses属性
获取此接口的域名系统(DNS)服务器的地址
4
3.1 IP地址转换与域名解析
IP地址与端口 IP地址、端口号的基本概念知识
3.1.2 IP地址转换相关类 IPAddress、IPEndPoint、IPHostEntry类的用法
域名解析 Dns类进行域名解析的方法
5
➢ TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组 协议的总称,包括IP、TCP、UDP、ICMP、ARP等。它规范 了网络上的所有通信设备,尤其是一个主机与另一个主机之 间的数据交换格式以及传送方式。
(1)GetHostAddresses方法 获取指定主机的IP地址,返回一个IPAddress类型的数组。格 式为:
public static IPAddress[] GetHostAddresses(string hostNameOrAddr ess);
例如: 注意:如果hostNameOrAddress是IP地址,则不查询DNS
网卡信息的方法;
3
本章重点
➢ 本章教学要求(续) (6)了解IPGlobalProperties 类获取网络流量统计信息的方法。 (7)掌握编码、解码的概念。 (8)掌握Encoding类的用法。 (9)了解Encoder类和Decoder类的用法。 ➢ 教学难点和重点
IP地址转换的基本方法,掌握编码与解码的概念及用法。
获取本机主机名。 例如:string hostname = Dns.GetHostName();
15
➢ 【例3-1】演示IPAddress类、Dns类、IPHostEntry类和IPE ndPoint类的使用方法,设计界面如图2-1所示。单击“显示本 机IP信息”按钮可以显示主机名及相关的IP地址;单击“显示服 务器信息”按钮可显示中央电视台服务器的IP地址信息。
25
➢ TcpConnectionInformation类 提供有关本地计算机上的传输控制协议(TCP)连接的信息。
IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();
网络适配器地址信息),如Dns服务器的IP地址、网关地址 以及多路广播地址。 ➢ 获取实例:
NetworkInterface[] adapters = NetworkInterface.Get AllNetworkInterfaces(); IPInterfaceProperties adapterProperties = adapters [0].GetIPProperties();
foreach (TcpConnectionInformation t in connections) {
string str = "";
str += ", " + t.State;
}
26
➢ 【例3-3】检测本机网络流量以及TCP连接信息。
27
➢ 可以使用Ping类检测本机是否可访问网络上的其它计算机。 类似于Ping.exe命令行工具。
6
➢ IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在 全世界范围内惟一的标识符。一个IP地址主要由两部分组成:网络 地址和主机地址。 网络地址由因特网权力机构分配,主机地址由各个网络的管理员统 一分配。
➢ IP地址编制方案有两种:IPV4和IPV6 IPV4:二进制表示共32位(4个字节) IPV6:二进制表示共128位(16个字节)
(2)HostName属性:包含了服务器的主机名。 (3)Aliases属性包含了与主机关联的别名列表。
在Dns类中,有一个专门获取IPHostEntry对象的方法。 例如:
IPAddress[] ips = Dns.GetHostEntry
13
➢ DNS(Domain Name System,域名系统)提供了一系列静 态的方法,用于获取提供本地或远程域名等功能,常用方法有:
➢ 端口地址的范围是十进制的0~65535
9
➢ IPAddress类(命名空间下):常用IPAddress的 Parse方法将IP地址字符串转换为IPAddress的实例。 例如:
➢ 构造函数有: (1)public IPAddress (byte[] address) byte[] iparray = new byte[] { 143,24,20,36 }; IPAddress localIP = new IPAddress(iparray); (2)public IPAddress (long newAddress) long ip = 0x2414188f; IPAddress localIP = new IPAddress(ip);
7
➢ 子网掩码:子网掩码用于屏蔽IP地址的一部分以区别网络 标识和主机标识。把所有的网络位(二进制)用1来标识, 主机位用0来标识。
8
➢ 端口:IP地址仅仅能够具体标识到某台主机,而端口则表 示与计算机上的哪个进程通信。
➢ 根据IP地址找到是与哪台机器通信,根据端口号找到是与
该机器的哪个进程通信。 (一个进程可能会使用多个端 口)
10
➢ IPAddress类常用属性 1.Any 提供一个IPv4地址,指示服务器应侦听所有网络接 口上的客户端活动。(等效于) 2.Broadcast 提供IPv4广播地址(等效于) 3.Loopback 表示IPv4回送地址(等效于) 4.None 表示Socket不应侦听客户端活动(不使用任何网 络接口)。 5.IPv6Any 提供可用的IPv6地址 6.IPv6Loopback 表示IPv6回送地址 7.IPv6None 提供不使用任何网络接口。
2. 对本机网络流量的检测 比如网络连接配置、接收与发送的数据包等。
3. Ping类 检测本机是否可访问网络上的其它计算机。
18
3.2 网卡信息检测与网络流量检测
1. NetworkInterface类 NetworkInterface类提供了网络适配器的配置和统计信息。 可以利用这个类检测本机有多少个网络适配器、网络适配 器型号以及网络适配器的速度等。
1
第3章 IP地址转换与网卡信息检测
3.1 IP地址转换与域名解析 3.2 网卡信息检测与网络流量检测 3.3 网络数据编码与解码
2
本章重点
➢ 本章教学目的 学习IP地址转换的基本方法,了解网卡信息检测与网络流量检 测相关类的用法,掌握编码与解码的概念及用法。
➢ 本章教学要求 (1)掌握IP地址、端口号的基本概念; (2)掌握IPAddress、IPEndPoint、IPHostEntry类的用法 ; (3)进行Dns类完成域名解析的方法。 (4)掌握Ping类的用法; (5)了解NetworkInterface类、IPInterfaceProperties类获取
➢ 获取实例:不能直接使用new关键字构造该类的实例,而 是利用NetworkInterface类提供的静态方法GetAllNetwor kInterfaces,得到NetworkInterface类型的数组。 NetworkInterface[] adapters = NetworkInterface.G etAllNetworkInterfaces();
11
➢ IPEndPoint类包含了连接到主机上的服务所需的IP地址和 端口信息。
➢ IPEndPoint类常用的构造函数为: public IPEndPoint(IPAddress, int);
其中第一个参数指定IP地址,第二个参数指定端口号。
12
➢ IPHostEntry类的对象中包含了与主机相关的信息。常用属性: (1)AddressList属性: 获取或设置与主机关联的IP地址列表,是一个IPAddress类型 的数组,包含了指定主机的所有IP地址;
GetIPv6Properties方法
获取此网络接口的Internet协议版本6(IPv6)配置数据
23
➢ 【例3-2】获取本机网络适配器的个数、型号、速度、MAC 地址以及DNS服务器信息。
24
➢ IPGlobalProperties类 提供本地计算机网络连接相关的信息。例如网络连接配置、 接收与发送的数据包等。
16
3.2 网卡信息检测与网络流量检测
17
3.2 网卡信息检测与网络流量检测
➢ 网络适配器: 又称网卡或网络接口卡(NIC),是连接计算机与网络的
硬件设备。整理计算机上发往网线上的数据,并将数据分解 为适当大小的数据包之后向络上发送。
1. 对本机网卡相关信息的检测 比如本机有多少网卡,网卡名称、速度、硬件地址等。
服务器,直接返回此地址。
14
(2)GetHostEntry方法
在DNS服务器中查询与某个主机名或IP地址关联的IP地址。 当参数为空字符串时,此方法返回本地主机的IPv4地址和主机名。 例如: IPHostEntry host = Dns.GetHostEntry("");
(3) GetHostName方法
➢ IPGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties();
IPGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties()
IPGlobalStatistics ipstat = properties.GetIPv4GlobalStatistics();
DnsSuffix属性
获取与此接口关联的域名系统(DNS)后缀
GatewayAddresses属性 获取此接口的网关地址
MulticastAddresses属性 获取分配给此接口的多路广播地址
UnicastAddresses属性
获取分配给此接口的单播地址
GetIPv4Properties方法
获取此网络接口的Internet协议版本4(IPv4)配置数据
3. PhysicalAddress类 提供了网络适配器的媒体访问控制(MAC)地址。
19
1.NetworkInterface类
➢ 对于本机的每个网络适配器,该数组中都包含一个Networ kInterface对象与之对应。
➢ 该类提供的Send和SendAsync方法将Internet控制消息 协议(ICMP)回送请求消息发送到远程计算机并等待来自该 计算机的ICMP回送答复消息。
➢ 与Ping类一起使用的类型有: 1. IPStatus枚举:定义描述 ICMP 回送请求消息结果的状态 代码 2. PingOptions类:控制如何传输 Ping 数据包 3. PingReply类:提供有关 Send 或 SendAsync 操作的状 态及产生的数据的信息
20
➢ NetworkInterface类常用的属性和方法
属性及方法
说明
Name属性
获取网络适配器的名称
Speed属性
获取网络适配器的速度(bit/秒)
GetAllNetworkInterfaces方法 返回描述本地计算机上的所有网络适配器对象
GetIPProperties方法
回描述此网络适配器配置的对象
GetIsNetworkAvailable方法 指示是否有任何可用的网络连接
GetPhysicalAddress方法
返回此适配器的媒体访问控制(MAC)地址
Supports方法
指示接口是否支持指定的协议(IPv4或IPv6)
21
2.IPInterfaceProperties类: ➢ 检测本机所有网络适配器支持的各种地址(IPv4和IPv6的
22
➢ IPInterfaceProperties类常用的属性和方法
属性及方法
说明
AnycastAddresses属性
获取分配给此接口的任意广播IP地址
DhcpServerAddresses属性 获取此接口的动态主机配置协议(DHCP)服务器的地址
DnsAddresses属性
获取此接口的域名系统(DNS)服务器的地址
4
3.1 IP地址转换与域名解析
IP地址与端口 IP地址、端口号的基本概念知识
3.1.2 IP地址转换相关类 IPAddress、IPEndPoint、IPHostEntry类的用法
域名解析 Dns类进行域名解析的方法
5
➢ TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组 协议的总称,包括IP、TCP、UDP、ICMP、ARP等。它规范 了网络上的所有通信设备,尤其是一个主机与另一个主机之 间的数据交换格式以及传送方式。
(1)GetHostAddresses方法 获取指定主机的IP地址,返回一个IPAddress类型的数组。格 式为:
public static IPAddress[] GetHostAddresses(string hostNameOrAddr ess);
例如: 注意:如果hostNameOrAddress是IP地址,则不查询DNS
网卡信息的方法;
3
本章重点
➢ 本章教学要求(续) (6)了解IPGlobalProperties 类获取网络流量统计信息的方法。 (7)掌握编码、解码的概念。 (8)掌握Encoding类的用法。 (9)了解Encoder类和Decoder类的用法。 ➢ 教学难点和重点
IP地址转换的基本方法,掌握编码与解码的概念及用法。
获取本机主机名。 例如:string hostname = Dns.GetHostName();
15
➢ 【例3-1】演示IPAddress类、Dns类、IPHostEntry类和IPE ndPoint类的使用方法,设计界面如图2-1所示。单击“显示本 机IP信息”按钮可以显示主机名及相关的IP地址;单击“显示服 务器信息”按钮可显示中央电视台服务器的IP地址信息。
25
➢ TcpConnectionInformation类 提供有关本地计算机上的传输控制协议(TCP)连接的信息。
IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();
网络适配器地址信息),如Dns服务器的IP地址、网关地址 以及多路广播地址。 ➢ 获取实例:
NetworkInterface[] adapters = NetworkInterface.Get AllNetworkInterfaces(); IPInterfaceProperties adapterProperties = adapters [0].GetIPProperties();
foreach (TcpConnectionInformation t in connections) {
string str = "";
str += ", " + t.State;
}
26
➢ 【例3-3】检测本机网络流量以及TCP连接信息。
27
➢ 可以使用Ping类检测本机是否可访问网络上的其它计算机。 类似于Ping.exe命令行工具。
6
➢ IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在 全世界范围内惟一的标识符。一个IP地址主要由两部分组成:网络 地址和主机地址。 网络地址由因特网权力机构分配,主机地址由各个网络的管理员统 一分配。
➢ IP地址编制方案有两种:IPV4和IPV6 IPV4:二进制表示共32位(4个字节) IPV6:二进制表示共128位(16个字节)
(2)HostName属性:包含了服务器的主机名。 (3)Aliases属性包含了与主机关联的别名列表。
在Dns类中,有一个专门获取IPHostEntry对象的方法。 例如:
IPAddress[] ips = Dns.GetHostEntry
13
➢ DNS(Domain Name System,域名系统)提供了一系列静 态的方法,用于获取提供本地或远程域名等功能,常用方法有:
➢ 端口地址的范围是十进制的0~65535
9
➢ IPAddress类(命名空间下):常用IPAddress的 Parse方法将IP地址字符串转换为IPAddress的实例。 例如:
➢ 构造函数有: (1)public IPAddress (byte[] address) byte[] iparray = new byte[] { 143,24,20,36 }; IPAddress localIP = new IPAddress(iparray); (2)public IPAddress (long newAddress) long ip = 0x2414188f; IPAddress localIP = new IPAddress(ip);
7
➢ 子网掩码:子网掩码用于屏蔽IP地址的一部分以区别网络 标识和主机标识。把所有的网络位(二进制)用1来标识, 主机位用0来标识。
8
➢ 端口:IP地址仅仅能够具体标识到某台主机,而端口则表 示与计算机上的哪个进程通信。
➢ 根据IP地址找到是与哪台机器通信,根据端口号找到是与
该机器的哪个进程通信。 (一个进程可能会使用多个端 口)
10
➢ IPAddress类常用属性 1.Any 提供一个IPv4地址,指示服务器应侦听所有网络接 口上的客户端活动。(等效于) 2.Broadcast 提供IPv4广播地址(等效于) 3.Loopback 表示IPv4回送地址(等效于) 4.None 表示Socket不应侦听客户端活动(不使用任何网 络接口)。 5.IPv6Any 提供可用的IPv6地址 6.IPv6Loopback 表示IPv6回送地址 7.IPv6None 提供不使用任何网络接口。
2. 对本机网络流量的检测 比如网络连接配置、接收与发送的数据包等。
3. Ping类 检测本机是否可访问网络上的其它计算机。
18
3.2 网卡信息检测与网络流量检测
1. NetworkInterface类 NetworkInterface类提供了网络适配器的配置和统计信息。 可以利用这个类检测本机有多少个网络适配器、网络适配 器型号以及网络适配器的速度等。
1
第3章 IP地址转换与网卡信息检测
3.1 IP地址转换与域名解析 3.2 网卡信息检测与网络流量检测 3.3 网络数据编码与解码
2
本章重点
➢ 本章教学目的 学习IP地址转换的基本方法,了解网卡信息检测与网络流量检 测相关类的用法,掌握编码与解码的概念及用法。
➢ 本章教学要求 (1)掌握IP地址、端口号的基本概念; (2)掌握IPAddress、IPEndPoint、IPHostEntry类的用法 ; (3)进行Dns类完成域名解析的方法。 (4)掌握Ping类的用法; (5)了解NetworkInterface类、IPInterfaceProperties类获取
➢ 获取实例:不能直接使用new关键字构造该类的实例,而 是利用NetworkInterface类提供的静态方法GetAllNetwor kInterfaces,得到NetworkInterface类型的数组。 NetworkInterface[] adapters = NetworkInterface.G etAllNetworkInterfaces();
11
➢ IPEndPoint类包含了连接到主机上的服务所需的IP地址和 端口信息。
➢ IPEndPoint类常用的构造函数为: public IPEndPoint(IPAddress, int);
其中第一个参数指定IP地址,第二个参数指定端口号。
12
➢ IPHostEntry类的对象中包含了与主机相关的信息。常用属性: (1)AddressList属性: 获取或设置与主机关联的IP地址列表,是一个IPAddress类型 的数组,包含了指定主机的所有IP地址;
GetIPv6Properties方法
获取此网络接口的Internet协议版本6(IPv6)配置数据
23
➢ 【例3-2】获取本机网络适配器的个数、型号、速度、MAC 地址以及DNS服务器信息。
24
➢ IPGlobalProperties类 提供本地计算机网络连接相关的信息。例如网络连接配置、 接收与发送的数据包等。
16
3.2 网卡信息检测与网络流量检测
17
3.2 网卡信息检测与网络流量检测
➢ 网络适配器: 又称网卡或网络接口卡(NIC),是连接计算机与网络的
硬件设备。整理计算机上发往网线上的数据,并将数据分解 为适当大小的数据包之后向络上发送。
1. 对本机网卡相关信息的检测 比如本机有多少网卡,网卡名称、速度、硬件地址等。
服务器,直接返回此地址。
14
(2)GetHostEntry方法
在DNS服务器中查询与某个主机名或IP地址关联的IP地址。 当参数为空字符串时,此方法返回本地主机的IPv4地址和主机名。 例如: IPHostEntry host = Dns.GetHostEntry("");
(3) GetHostName方法
➢ IPGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties();
IPGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties()
IPGlobalStatistics ipstat = properties.GetIPv4GlobalStatistics();
DnsSuffix属性
获取与此接口关联的域名系统(DNS)后缀
GatewayAddresses属性 获取此接口的网关地址
MulticastAddresses属性 获取分配给此接口的多路广播地址
UnicastAddresses属性
获取分配给此接口的单播地址
GetIPv4Properties方法
获取此网络接口的Internet协议版本4(IPv4)配置数据