c#网络应用编程第03章IP地址转换与网卡信息检测_第1页
c#网络应用编程第03章IP地址转换与网卡信息检测_第2页
c#网络应用编程第03章IP地址转换与网卡信息检测_第3页
c#网络应用编程第03章IP地址转换与网卡信息检测_第4页
c#网络应用编程第03章IP地址转换与网卡信息检测_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 1 第第3章章 IP地址转换与网卡信息检测地址转换与网卡信息检测 3.1 IP地址转换与域名解析地址转换与域名解析 3.2 网卡信息检测与网络流量检测网卡信息检测与网络流量检测 3.3 网络数据编码与解码网络数据编码与解码 2 2 本章教学目的本章教学目的 学习学习IP地址转换的基本方法,了解网卡信息检测与网络流量地址转换的基本方法,了解网卡信息检测与网络流量 检测相关类的用法,掌握编码与解码的概念及用法。检测相关类的用法,掌握编码与解码的概念及用法。 本章教学要求本章教学要求 (1)掌握)掌握IP地址、端口号的基本概念;地址、端口号的基本概念; (2)掌握)掌握IPAddress、IPE

2、ndPoint、IPHostEntry类的用法类的用法 ; (3)进行)进行Dns类完成域名解析的方法。类完成域名解析的方法。 (4)掌握)掌握Ping类的用法;类的用法; (5)了解)了解NetworkInterface类、类、IPInterfaceProperties类获取类获取 网卡信息的方法;网卡信息的方法; 本章重点本章重点 3 3 本章教学要求(续)本章教学要求(续) (6)了解)了解IPGlobalProperties 类获取网络流量统计信息的方法。类获取网络流量统计信息的方法。 (7)掌握编码、解码的概念。)掌握编码、解码的概念。 (8)掌握)掌握Encoding类的用法。类的

3、用法。 (9)了解)了解Encoder类和类和Decoder类的用法。类的用法。 教学难点和重点教学难点和重点 IP地址转换的基本方法,掌握编码与解码的概念及用法。地址转换的基本方法,掌握编码与解码的概念及用法。 本章重点本章重点 4 4 3.1 IP地址转换与域名解析地址转换与域名解析 IP地址与端口地址与端口 IP地址、端口号的基本概念知识地址、端口号的基本概念知识 3.1.2 IP地址转换相关类地址转换相关类 IPAddress、IPEndPoint、IPHostEntry类的用法类的用法 域名解析域名解析 Dns类进行域名解析的方法类进行域名解析的方法 5 5 TCP/IP(传输控制协

4、议(传输控制协议/网际协议)不是一个协议,而是一组网际协议)不是一个协议,而是一组 协议的总称,包括协议的总称,包括IP、TCP、UDP、ICMP、ARP等。它规范等。它规范 了网络上的所有通信设备,尤其是一个主机与另一个主机之了网络上的所有通信设备,尤其是一个主机与另一个主机之 间的数据交换格式以及传送方式。间的数据交换格式以及传送方式。 6 6 IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在地址:是给每个连接在因特网上的主机(或路由器)分配一个在 全世界范围内惟一的标识符。一个全世界范围内惟一的标识符。一个IP地址主要由两部分组成:网络地址主要由两部分组成:网络 地址和主机地

5、址。地址和主机地址。 网络地址由因特网权力机构分配,主机地址由各个网络的管理员统网络地址由因特网权力机构分配,主机地址由各个网络的管理员统 一分配。一分配。 IP地址编制方案有两种:地址编制方案有两种:IPV4和和IPV6 IPV4:二进制表示共:二进制表示共32位(位(4个字节)个字节) IPV6:二进制表示共:二进制表示共128位(位(16个字节)个字节) 7 7 子网掩码:子网掩码用于屏蔽子网掩码:子网掩码用于屏蔽IP地址的一部分以区别网络地址的一部分以区别网络 标识和主机标识。把所有的网络位(二进制)用标识和主机标识。把所有的网络位(二进制)用1来标识,来标识, 主机位用主机位用0来标

6、识。来标识。 8 8 端口:端口:IP地址仅仅能够具体标识到某台主机,而端口则表地址仅仅能够具体标识到某台主机,而端口则表 示与计算机上的哪个进程通信。示与计算机上的哪个进程通信。 根据根据IP地址找到是与哪台机器通信,根据端口号找到是与地址找到是与哪台机器通信,根据端口号找到是与 该机器的哪个进程通信。该机器的哪个进程通信。 (一个进程可能会使用多个端一个进程可能会使用多个端 口口) 端口地址的范围是十进制的端口地址的范围是十进制的065535 9 9 IPAddress类类(System.Net命名空间下命名空间下):常用:常用IPAddress的的 Parse方法将方法将IP地址字符串转

7、换为地址字符串转换为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 = 0 x2414188f; IPAddress localIP = new IPAddress(ip); 1010 IPAddress类常用属性类常用属性 Any 提供一个提

8、供一个IPv4地址,指示服务器应侦听所有网络接地址,指示服务器应侦听所有网络接 口上的客户端活动。(等效于)口上的客户端活动。(等效于) Broadcast 提供提供IPv4广播地址(等效于)广播地址(等效于) Loopback 表示表示IPv4回送地址(等效于)回送地址(等效于) None 表示表示Socket不应侦听客户端活动(不使用任何网不应侦听客户端活动(不使用任何网 络接口)。络接口)。 IPv6Any 提供可用的提供可用的IPv6地址地址 IPv6Loopback 表示表示IPv6回送地址回送地址 1.IPv6None 提供不使用任何网络接口。提供不使用任何网络接口。 1111 I

9、PEndPoint类包含了连接到主机上的服务所需的类包含了连接到主机上的服务所需的IP地址和地址和 端口信息。端口信息。 IPEndPoint类常用的构造函数为:类常用的构造函数为: public IPEndPoint(IPAddress, int); 其中第一个参数指定其中第一个参数指定IP地址,第二个参数指定端口号。地址,第二个参数指定端口号。 1212 IPHostEntry类的对象中包含了与主机相关的信息。常用属性:类的对象中包含了与主机相关的信息。常用属性: (1)AddressList属性属性: 获取或设置与主机关联的获取或设置与主机关联的IP地址列表,是一个地址列表,是一个IPA

10、ddress类型类型 的数组,包含了指定主机的所有的数组,包含了指定主机的所有IP地址;地址; (2)HostName属性:包含了服务器的主机名。属性:包含了服务器的主机名。 (3)Aliases属性包含了与主机关联的别名列表。属性包含了与主机关联的别名列表。 在在Dns类中,有一个专门获取类中,有一个专门获取IPHostEntry对象的方法。对象的方法。 例如:例如: IPAddress ips = Dns.GetHostEntry 1313 DNS(Domain Name System,域名系统)提供了一系列静,域名系统)提供了一系列静 态的方法,用于获取提供本地或远程域名等功能态的方法,

11、用于获取提供本地或远程域名等功能,常用方法有:常用方法有: (1)GetHostAddresses方法方法 获取指定主机的获取指定主机的IP地址,返回一个地址,返回一个IPAddress类型的数组。格类型的数组。格 式为:式为: public static IPAddress GetHostAddresses(string hostNameOrAddr ess); 例如:例如: 注意:如果注意:如果hostNameOrAddress是是IP地址,则不查询地址,则不查询DNS 服务器,直接返回此地址。服务器,直接返回此地址。 1414 (2)GetHostEntry方法方法 在在DNS服务器中查

12、询与某个主机名或服务器中查询与某个主机名或IP地址关联的地址关联的IP地址。地址。 当参数为空字符串时,此方法返回本地主机的当参数为空字符串时,此方法返回本地主机的IPv4地址和主机名。地址和主机名。 例如:例如: IPHostEntry host = Dns.GetHostEntry(); (3) GetHostName方法方法 获取本机主机名。获取本机主机名。 例如:例如:string hostname = Dns.GetHostName(); 1515 【例【例3-1】演示】演示IPAddress类、类、Dns类、类、IPHostEntry类和类和IPE ndPoint类的使用方法,设计

13、界面如图类的使用方法,设计界面如图2-1所示。单击所示。单击“显示显示 本机本机IP信息信息”按钮可以显示主机名及相关的按钮可以显示主机名及相关的IP地址;单击地址;单击 “显示服务器信息显示服务器信息”按钮可显示中央电视台服务器的按钮可显示中央电视台服务器的IP地址地址 信息。信息。 1616 3.2 网卡信息检测与网络流量检测网卡信息检测与网络流量检测 1717 3.2 网卡信息检测与网络流量检测网卡信息检测与网络流量检测 网络适配器:网络适配器: 又称网卡或网络接口卡(又称网卡或网络接口卡(NIC),是连接计算机与网络的),是连接计算机与网络的 硬件设备。整理计算机上发往网线上的数据,并

14、将数据分解硬件设备。整理计算机上发往网线上的数据,并将数据分解 为适当大小的数据包之后向网络上发送。为适当大小的数据包之后向网络上发送。 对本机网卡相关信息的检测对本机网卡相关信息的检测 比如本机有多少网卡,网卡名称、速度、硬件地址等。比如本机有多少网卡,网卡名称、速度、硬件地址等。 对本机网络流量的检测对本机网络流量的检测 比如网络连接配置、接收与发送的数据包等。比如网络连接配置、接收与发送的数据包等。 1.Ping类类 检测本机是否可访问网络上的其它计算机。检测本机是否可访问网络上的其它计算机。 1818 3.2 网卡信息检测与网络流量检测网卡信息检测与网络流量检测 NetworkInte

15、rface类类 NetworkInterface类提供了网络适配器的配置和统计信息。类提供了网络适配器的配置和统计信息。 可以利用这个类检测本机有多少个网络适配器、网络适配可以利用这个类检测本机有多少个网络适配器、网络适配 器型号以及网络适配器的速度等。器型号以及网络适配器的速度等。 IPInterfaceProperties类类 可以利用这个类检测本机所有网络适配器支持的各种地址可以利用这个类检测本机所有网络适配器支持的各种地址 PhysicalAddress类类 提供了网络适配器的媒体访问控制提供了网络适配器的媒体访问控制(MAC)地址。地址。 1919 1NetworkInterface

16、类类 对于本机的每个网络适配器,该数组中都包含一个对于本机的每个网络适配器,该数组中都包含一个Networ kInterface对象与之对应。对象与之对应。 获取实例:不能直接使用获取实例:不能直接使用new关键字构造该类的实例,而关键字构造该类的实例,而 是利用是利用NetworkInterface类提供的静态方法类提供的静态方法GetAllNetwor kInterfaces,得到,得到NetworkInterface类型的数组。类型的数组。 NetworkInterface adapters = NetworkInterface.Ge tAllNetworkInterfaces(); 2

17、020 NetworkInterface类常用的属性和方法类常用的属性和方法 属性及方法属性及方法说明 Name属性属性获取网络适配器的名称 Speed属性属性获取网络适配器的速度(bit/秒) GetAllNetworkInterfaces方法方法返回描述本地计算机上的所有网络适配器对象 GetIPProperties方法方法回描述此网络适配器配置的对象 GetIsNetworkAvailable方法方法指示是否有任何可用的网络连接 GetPhysicalAddress方法方法返回此适配器的媒体访问控制(MAC)地址 Supports方法方法 指示接口是否支持指定的协议(IPv4或IPv6)

18、 2121 2.IPInterfaceProperties类:类: 检测本机所有网络适配器支持的各种地址(检测本机所有网络适配器支持的各种地址(IPv4和和IPv6的的 网络适配器地址信息),如网络适配器地址信息),如Dns服务器的服务器的IP地址、网关地地址、网关地 址以及多路广播地址。址以及多路广播地址。 获取实例:获取实例: NetworkInterface adapters = NetworkInterface.Get AllNetworkInterfaces(); IPInterfaceProperties adapterProperties = adapters 0.GetIPPr

19、operties(); 2222 IPInterfaceProperties类常用的属性和方法类常用的属性和方法 属性及方法说 明 AnycastAddresses属性获取分配给此接口的任意广播IP地址 DhcpServerAddresses属性获取此接口的动态主机配置协议(DHCP)服务器的地址 DnsAddresses属性获取此接口的域名系统(DNS)服务器的地址 DnsSuffix属性获取与此接口关联的域名系统(DNS)后缀 GatewayAddresses属性获取此接口的网关地址 MulticastAddresses属性获取分配给此接口的多路广播地址 UnicastAddresses属

20、性获取分配给此接口的单播地址 GetIPv4Properties方法获取此网络接口的Internet协议版本4(IPv4)配置数据 GetIPv6Properties方法获取此网络接口的Internet协议版本6(IPv6)配置数据 2323 【例【例3-2】获取本机网络适配器的个数、型号、速度、】获取本机网络适配器的个数、型号、速度、MAC 地址以及地址以及DNS服务器信息。服务器信息。 2424 IPGlobalProperties类类 提供本地计算机网络连接相关的信息。例如网络连接配置、提供本地计算机网络连接相关的信息。例如网络连接配置、 接收与发送的数据包等。接收与发送的数据包等。 I

21、PGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties(); IPGlobalProperties properties = IPGlobalPropeties.GetIPGlobalProperties() IPGlobalStatistics ipstat = properties.GetIPv4GlobalStatistics(); 2525 TcpConnectionInformation类类 提供有关本地计算机上的传输控制协议提供有关本地计算机上的传输控制协议(TCP)连接的信息。连接的信息。 IP

22、GlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties(); TcpConnectionInformation connections = properties.GetActiveTcpConnections(); foreach (TcpConnectionInformation t in connections) string str = ; str += , + t.State; 2626 【例【例3-3】检测本机网络流量以及】检测本机网络流量以及TCP连接信息。连接信息。 2727 可以使用可以使用P

23、ing类检测本机是否可访问网络上的其它计算机。类检测本机是否可访问网络上的其它计算机。 类似于类似于Ping.exe命令行工具。命令行工具。 该类提供的该类提供的Send和和SendAsync方法将方法将Internet控制消息控制消息 协议协议(ICMP)回送请求消息发送到远程计算机并等待来自该回送请求消息发送到远程计算机并等待来自该 计算机的计算机的ICMP回送答复消息。回送答复消息。 与与Ping类一起使用的类型有:类一起使用的类型有: IPStatus枚举:定义描述枚举:定义描述 ICMP 回送请求消息结果的状回送请求消息结果的状 态代码态代码 PingOptions类:控制如何传输类

24、:控制如何传输 Ping 数据包数据包 1. PingReply类:提供有关类:提供有关 Send 或或 SendAsync 操作的状操作的状 态及产生的数据的信息态及产生的数据的信息 2828 Ping类类Send方法方法 (1)public PingReply Send(IPAddress address) 此方法向此方法向address参数指定的主机发送一个包含回送消息参数指定的主机发送一个包含回送消息 的的32位位Byte数据,然后等待应答消息数据,然后等待应答消息5秒钟。如果在上述秒钟。如果在上述 时间内没有收到应答,则直接返回,并将时间内没有收到应答,则直接返回,并将PingRep

25、ly实例实例 的的Status属性设置为属性设置为TimedOut。例如:。例如: Ping pingSender = new Ping (); 2929 Ping类类Send方法方法 (2)public PingReply Send(string hostNameOrAddres s,int timeout,byte buffer,PingOptions options) 参数说明:参数说明: uhostNameOrAddress表示目标计算机表示目标计算机IP地址或者主机名。地址或者主机名。 utimeout指定发送回送消息后,等待答复消息的最大毫秒指定发送回送消息后,等待答复消息的最大毫

26、秒 数。数。 uBuffer是一个是一个Byte数组,存放和回送消息一起发送的数据。数组,存放和回送消息一起发送的数据。 uOptions是一个是一个PingOptions对象,用于控制如何传输对象,用于控制如何传输Pin g数据包。数据包。 3030 PingOptions类:控制如何传输类:控制如何传输 Ping 数据包。与此类相数据包。与此类相 关的属性有:关的属性有: Ttl 属性属性 为为 Ping 类发送的数据包指定生存时间。此值指示在丢弃类发送的数据包指定生存时间。此值指示在丢弃 Ping 数据包之前可以转发此数据包的路由节点数。如果数据包之前可以转发此数据包的路由节点数。如果

27、要测试将数据包从源计算机发送到目标计算机所需的转发要测试将数据包从源计算机发送到目标计算机所需的转发 数(也称为跃点),设置此选项很有用。数(也称为跃点),设置此选项很有用。 1. DontFragment 属性属性 控制是否可将发送到远程主机的数据分成多个数据包。如控制是否可将发送到远程主机的数据分成多个数据包。如 果要测试用于传输数据包的路由器和网关的最大传输单元果要测试用于传输数据包的路由器和网关的最大传输单元 (MTU),此选项很有用。,此选项很有用。 3131 PingReply类类 调用调用Ping类的类的Send方法后,即得到方法后,即得到PingReply类的实类的实 例,该实

28、例提供有关例,该实例提供有关Send或或SendAsync操作的状态以及操作的状态以及 发送请求和接收答复所用的时间等信息。常用属性有发送请求和接收答复所用的时间等信息。常用属性有 1. Address属性:属性: 获取发送回送答复消息的主机地址获取发送回送答复消息的主机地址 2. RoundtripTime属性:属性: 获取发送消息所用的往返时间获取发送消息所用的往返时间 3. Status属性:属性: 获取答复的状态,为获取答复的状态,为IPStatus枚举类型。如果值为枚举类型。如果值为IPSt atus.Success则代表则代表Send方法执行成功方法执行成功 3232 【例【例3-

29、4】Ping类的用法。类的用法。 3333 3.3 网络数据编码与解码网络数据编码与解码 3434 3.3 网络数据编码与解码网络数据编码与解码 编码:是指将一组字符转换为一个字节序列的过程。编码:是指将一组字符转换为一个字节序列的过程。 解码:将一个编码字节序列转换为一组字符的过程。解码:将一个编码字节序列转换为一组字符的过程。 为什么需要编码和解码为什么需要编码和解码 因为通过网络传递的数据必须是字节序列。因为通过网络传递的数据必须是字节序列。 常用编码:常用编码:ASCII、Unicode、UTF、国标码、国标码 3535 3.3 网络数据编码与解码网络数据编码与解码 常用编码常用编码

30、ASCII码:每个字符均为码:每个字符均为7位,主要针对英文。位,主要针对英文。 UNICODE码:每个字符均占两个字节。码:每个字符均占两个字节。 UTF码:通用转换码,主要解决编码容量问题,常用有码:通用转换码,主要解决编码容量问题,常用有 (1)UTF-8:用:用1到到4个字节编码一个个字节编码一个UNICODE字符字符 (2)UTF-16:将每个字符编码为:将每个字符编码为1至至2个个16位整数组成的位整数组成的 序列序列 (3)UTF-32:将每个字符编码为一个:将每个字符编码为一个32位整数位整数 1.国标码:常用有国标码:常用有 GB2312(1980年公布)年公布) GB180

31、30(2000年公布)年公布) 3636 Encoding类位于类位于System.Text命名空间中。常用属性及方法如下命名空间中。常用属性及方法如下: 名称说明 Default属性获取系统的当前ANSI代码页的编码 Unicode属性获取使用 Little-Endian 字节顺序的 UTF-16 格式的编码 UTF8属性获取UTF-8格式的编码 Convert方法将字节数组从一种编码转换为另一种编码 GetBytes方法将一组字符编码为一个字节序列 GetString方法将一个字节序列解码为一个字符串 GetEncoder方法获取一个解码器,该解码器将Unicode字符序列转换为已编码的字

32、节序列 GetDecoder方法获取一个解码器,该解码器将已编码的字节序列转换为字符序列 3737 1获取所有编码名称及其描述信息获取所有编码名称及其描述信息 GetEncodings方法获得包含所有编码的方法获得包含所有编码的EncodingInf o数组。下面的代码可以获取所有编码的名称及其名称描述。数组。下面的代码可以获取所有编码的名称及其名称描述。 foreach (EncodingInfo ei in Encoding.GetEncodings() Encoding en = ei.GetEncoding(); ei.Name, en.EncodingName); 3838 2获取某

33、个指定的编码描述信息获取某个指定的编码描述信息 1)访问)访问UTF8、ASCII等属性,直接获得其他非等属性,直接获得其他非Unicode的某的某 个指定字符集的编码实例。个指定字符集的编码实例。 uEncoding ASCIIEncode = Encoding.ASCII; 2)利用静态方法)利用静态方法GetEndcoing来获取编码实例,例如:来获取编码实例,例如: uEncoding GB2312Encoding = Encoding.GetEncoding (GB2312); 3)访问)访问HeaderName属性,获取指定编码的名称属性,获取指定编码的名称 14)访问)访问Enc

34、odingName属性,显示指定编码的名称描述属性,显示指定编码的名称描述 3939 3不同编码之间的转换不同编码之间的转换 功能:功能:Encoding类的类的Convert方法可将字节数组从一种编方法可将字节数组从一种编 码转换为另一种编码,转换结果类型为码转换为另一种编码,转换结果类型为byte 。 方法原型:方法原型: public static byte Convert(Encoding srcEncoding, E ncoding dstEncoding, byte bytes) 参数说明:参数说明: usrcEncoding表示源编码格式。表示源编码格式。 udstEncodin

35、g表示目标编码格式。表示目标编码格式。 ubytes参数指定了待转换的字节数。参数指定了待转换的字节数。 u将将Unicode字符串转换为字符串转换为UTF8字符串时,可参考以下的步字符串时,可参考以下的步 骤进行。骤进行。 4040 将将Unicode字符串转换为字符串转换为UTF8字符串:字符串: (1)利用)利用Encoding的的UTF8和和Unicode属性获取属性获取UTF8格式格式 的编码实例的编码实例utf8和和Unicode格式的编码实例格式的编码实例unicode,例如:,例如: string unicodeString = 含含unicode字符字符Pi(u03a0);

36、Encoding unicode = Encoding.Unicode; Encoding utf8 = Encoding.UTF8; (2)利用)利用unicode的的GetBytes方法将方法将Unicode字符编码为字符编码为U nicode字节数组,例如:字节数组,例如: byte unicodeBytes = unicode.GetBytes(unicodeString); 4141 (3)利用)利用Encoding的的Convert方法将方法将Unicode字节数组转换字节数组转换 为为UTF8字节数组,例如:字节数组,例如: byte utf8Bytes = Encoding.C

37、onvert(Encoding.Unicode, Encoding.UTF8, unicodeBytes); (4)最后,利用)最后,利用ut8的的GetString方法将方法将UTF8字节数组解码字节数组解码 为为UTF8字符串,例如:字符串,例如: string utf8String = utf8.GetString(utf8Bytes); 4242 为什么使用为什么使用Encoder及及Decoder类?类? u在网络传输和文件操作中,如果数据量比较大,需要划分在网络传输和文件操作中,如果数据量比较大,需要划分 为较小的块,此时可能出现一个数据块的末尾是一个不匹为较小的块,此时可能出现一

38、个数据块的末尾是一个不匹 配的高代理项,而与其匹配的低代理项则位于下一个数据配的高代理项,而与其匹配的低代理项则位于下一个数据 块中。对于这种情况,直接使用块中。对于这种情况,直接使用Encoding类的类的GetBytes 方法编写程序就比较繁琐。此时,可以利用方法编写程序就比较繁琐。此时,可以利用Encoder类轻类轻 松地解决这个问题。松地解决这个问题。 4343 Encoder类类 Encoder类位于类位于System.Text名称空间下,利用它可以名称空间下,利用它可以 将一组字符转换为一个字节序列。将一组字符转换为一个字节序列。 (1)获取获取Encoder实例:利用实例:利用GetEncoder方法获取实例方法获取实例 /获取获取ASCII编码的编码的Encoder实例实例 /获取获取Unicode编码的编码的Encoder实例实例 4444 (2)GetBytes方法方法 GetB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论