您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > c#网络应用编程第03章 IP地址转换与网卡信息检测
1第3章IP地址转换与网卡信息检测3.1IP地址转换与域名解析3.2网卡信息检测与网络流量检测3.3网络数据编码与解码2本章教学目的学习IP地址转换的基本方法,了解网卡信息检测与网络流量检测相关类的用法,掌握编码与解码的概念及用法。本章教学要求(1)掌握IP地址、端口号的基本概念;(2)掌握IPAddress、IPEndPoint、IPHostEntry类的用法;(3)进行Dns类完成域名解析的方法。(4)掌握Ping类的用法;(5)了解NetworkInterface类、IPInterfaceProperties类获取网卡信息的方法;本章重点3本章教学要求(续)(6)了解IPGlobalProperties类获取网络流量统计信息的方法。(7)掌握编码、解码的概念。(8)掌握Encoding类的用法。(9)了解Encoder类和Decoder类的用法。教学难点和重点IP地址转换的基本方法,掌握编码与解码的概念及用法。本章重点43.1IP地址转换与域名解析3.1.1IP地址与端口IP地址、端口号的基本概念知识3.1.2IP地址转换相关类IPAddress、IPEndPoint、IPHostEntry类的用法3.1.3域名解析Dns类进行域名解析的方法53.1.1IP地址与端口TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组协议的总称,包括IP、TCP、UDP、ICMP、ARP等。它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据交换格式以及传送方式。63.1.1IP地址与端口(续)IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内惟一的标识符。一个IP地址主要由两部分组成:网络地址和主机地址。网络地址由因特网权力机构分配,主机地址由各个网络的管理员统一分配。IP地址编制方案有两种:IPV4和IPV6IPV4:二进制表示共32位(4个字节)IPV6:二进制表示共128位(16个字节)在IPV4编制方案中,一般使用点分十进制表示法表示IP地址。例如:192.168.3.173.1.1IP地址与端口(续)子网掩码:子网掩码用于屏蔽IP地址的一部分以区别网络标识和主机标识。把所有的网络位(二进制)用1来标识,主机位用0来标识。例如:对于IP地址192.168.0.X,可以将子网掩码设置为255.255.255.0,对于IP地址192.168.0.X,其网络标示部分为192.168.0;主机标示为:X83.1.1IP地址与端口(续)端口:IP地址仅仅能够具体标识到某台主机,而端口则表示与计算机上的哪个进程通信。根据IP地址找到是与哪台机器通信,根据端口号找到是与该机器的哪个进程通信。(一个进程可能会使用多个端口)端口地址的范围是十进制的0~6553593.1.2IP地址转换相关类IPAddress类(System.Net命名空间下):常用IPAddress的Parse方法将IP地址字符串转换为IPAddress的实例。例如:IPAddressip=IPAddress.Parse(“192.168.1.1”);构造函数有:(1)publicIPAddress(byte[]address)byte[]iparray=newbyte[]{143,24,20,36};IPAddresslocalIP=newIPAddress(iparray);(2)publicIPAddress(longnewAddress)longip=0x2414188f;IPAddresslocalIP=newIPAddress(ip);103.1.2IP地址转换相关类(续)IPAddress类常用属性1.Any提供一个IPv4地址,指示服务器应侦听所有网络接口上的客户端活动。(等效于0.0.0.0)2.Broadcast提供IPv4广播地址(等效于255.255.255.255)3.Loopback表示IPv4回送地址(等效于127.0.0.1)4.None表示Socket不应侦听客户端活动(不使用任何网络接口)。5.IPv6Any提供可用的IPv6地址6.IPv6Loopback表示IPv6回送地址7.IPv6None提供不使用任何网络接口。113.1.2IP地址转换相关类(续)IPEndPoint类包含了连接到主机上的服务所需的IP地址和端口信息。IPEndPoint类常用的构造函数为:publicIPEndPoint(IPAddress,int);其中第一个参数指定IP地址,第二个参数指定端口号。123.1.2IP地址转换相关类(续)IPHostEntry类的对象中包含了与主机相关的信息。常用属性:(1)AddressList属性:获取或设置与主机关联的IP地址列表,是一个IPAddress类型的数组,包含了指定主机的所有IP地址;(2)HostName属性:包含了服务器的主机名。(3)Aliases属性包含了与主机关联的别名列表。在Dns类中,有一个专门获取IPHostEntry对象的方法。例如:IPAddress[]ips=Dns.GetHostEntry(“).AddressList;133.1.3域名解析DNS(DomainNameSystem,域名系统)提供了一系列静态的方法,用于获取提供本地或远程域名等功能,常用方法有:(1)GetHostAddresses方法获取指定主机的IP地址,返回一个IPAddress类型的数组。格式为:publicstaticIPAddress[]GetHostAddresses(stringhostNameOrAddress);例如:IPAddress[]ips=Dns.GetHostAddresses();注意:如果hostNameOrAddress是IP地址,则不查询DNS服务器,直接返回此地址。143.1.3域名解析(续)(2)GetHostEntry方法在DNS服务器中查询与某个主机名或IP地址关联的IP地址。当参数为空字符串时,此方法返回本地主机的IPv4地址和主机名。例如:IPHostEntryhost=Dns.GetHostEntry();listBox1.Items.AddRange(host.AddressList);//本机所有IPv4地址listBox1.Items.Add(host.HostName);//本机主机名(3)GetHostName方法获取本机主机名。例如:stringhostname=Dns.GetHostName();153.1.3域名解析(续)【例3-1】演示IPAddress类、Dns类、IPHostEntry类和IPEndPoint类的使用方法,设计界面如图2-1所示。单击“显示本机IP信息”按钮可以显示主机名及相关的IP地址;单击“显示服务器信息”按钮可显示中央电视台服务器的IP地址信息。163.2网卡信息检测与网络流量检测3.2.1网卡信息检测相关类3.2.2网络流量信息检测相关类3.2.3Ping及其相关类173.2网卡信息检测与网络流量检测网络适配器:又称网卡或网络接口卡(NIC),是连接计算机与网络的硬件设备。整理计算机上发往网线上的数据,并将数据分解为适当大小的数据包之后向网络上发送。System.Net.NetworkInformation命名空间提供了:1.对本机网卡相关信息的检测比如本机有多少网卡,网卡名称、速度、硬件地址等。2.对本机网络流量的检测比如网络连接配置、接收与发送的数据包等。3.Ping类检测本机是否可访问网络上的其它计算机。183.2网卡信息检测与网络流量检测1.NetworkInterface类NetworkInterface类提供了网络适配器的配置和统计信息。可以利用这个类检测本机有多少个网络适配器、网络适配器型号以及网络适配器的速度等。2.IPInterfaceProperties类可以利用这个类检测本机所有网络适配器支持的各种地址3.PhysicalAddress类提供了网络适配器的媒体访问控制(MAC)地址。193.2.1网卡信息检测相关类1.NetworkInterface类位于System.Net.NetworkInformation命名空间下,它提供了网络适配器的配置和统计信息。该类可以方便地检测本机有多少个网卡、哪些网络连接可用,并可获取某个网卡的型号、MAC地址和速度等信息。对于本机的每个网络适配器,该数组中都包含一个NetworkInterface对象与之对应。获取实例:不能直接使用new关键字构造该类的实例,而是利用NetworkInterface类提供的静态方法GetAllNetworkInterfaces,得到NetworkInterface类型的数组。NetworkInterface[]adapters=NetworkInterface.GetAllNetworkInterfaces();203.2.1网卡信息检测相关类(续)NetworkInterface类常用的属性和方法属性及方法说明Name属性获取网络适配器的名称Speed属性获取网络适配器的速度(bit/秒)GetAllNetworkInterfaces方法返回描述本地计算机上的所有网络适配器对象GetIPProperties方法回描述此网络适配器配置的对象GetIsNetworkAvailable方法指示是否有任何可用的网络连接GetPhysicalAddress方法返回此适配器的媒体访问控制(MAC)地址Supports方法指示接口是否支持指定的协议(IPv4或IPv6)213.2.1网卡信息检测相关类(续)2.IPInterfaceProperties类:检测本机所有网络适配器支持的各种地址(IPv4和IPv6的网络适配器地址信息),如Dns服务器的IP地址、网关地址以及多路广播地址。获取实例:NetworkInterface[]adapters=NetworkInterface.GetAllNetworkInterfaces();IPInterfacePropertiesadapterProperties=adapters[0].GetIPProperties();223.2.1网卡信息检测相关类(续)IPInterfaceProperties类常用的属性和方法属性及方法说明AnycastAddresses属性获取分配给此接口的任意广播IP地址DhcpServerAddresses属性获取此接口的动态主机配置协议(DHCP)服务器的地址DnsAddresses属性获取此接口的域名系统(DNS)服务器的地址DnsSuffix属性获取与此接口关联的域名系统(DNS)后缀GatewayAddresses属性获取此接口的网关地址MulticastAddresses属性获取分配给此接口的多路广播地址UnicastAddresses属性获取分配给此接口的单播地址GetIPv4Properties方法获取此网络接口的Internet协议版本4(IPv4)配置数据GetIPv6Properties方法获取此网络接口的Internet协议版本6(IPv6)配置数据233.2.1网卡信息检测相关类(续)【例3-2】获取本机网络适配器的个数、型号、速度、MAC地址以及DNS服务器信息。243.2.2网络流量信息检测相关类IPGlobalProperties类提供本地计算机网络连接相关的信息。例如网络连接配置、接收与发送的数据包等。IPGlobalPropertiesproperties=IPGlobalPropeties.GetIPGlobalProperties();IPGlobalPropertiesproperties=IPGlobalPropeties.GetIPGlobalProperties()IPGlobalStatisticsipstat=properties
本文标题:c#网络应用编程第03章 IP地址转换与网卡信息检测
链接地址:https://www.777doc.com/doc-6372370 .html