版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈
2、莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂
3、薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇
4、莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁
5、芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅
6、蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节
7、莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿螁羅蒇螈袃膁莃螇羆羃艿螆螅腿芅螅袈肂薄螄羀芇蒀螃肂肀莆螃螂芆节袂袄肈薀袁羇芄蒆袀聿肇莂衿衿节莈蒆羁膅芄蒅肃莀薃蒄螃膃葿蒃袅荿莅蒂羇膂芁薁肀羄蕿薀蝿膀蒅薀羂羃蒁蕿肄芈莇薈螄肁芃薇袆芆薂薆羈聿蒈薅肁芅莄蚅螀肈芀蚄袃芃膆蚃肅肆薄蚂螅莁蒀蚁袇膄莆蚀罿莀节虿肁膂薁蝿 监控ip包流量摘 要 本课程设计主要是编制程序,监控网络,捕获一段时间内网络上的ip数据包,按ip数据包的源地址统计出该源地址在该时间段内发出的ip包的个数,将其写入日志文件中或
8、用图形表示出来。程序中会用到winpcap,它主要功能在于独立于主机协议发送和接收原始数据报。本次课程设计中用vc+实现基于winpcap的ip数据包的捕获和统计,根据获取网络设备列表,选择正确的网卡并打开,获取子网掩码,编译、设置过滤器,捕获数据包;列出源ip地址及其相应的包数。使我们对于tcp/ip协议以及ip数据抱的格式有了进一步的了解和掌握。通过编写程序从而实现对网络中ip数据包流量的统计。 1、引言1.1 课程设计目的 本次课程设计主要是通过用vc+编程实现对网络中ip数据包流量的统计,也就是编制程序,监控网络,捕获一段时间内网络上的ip数据包,按ip数据包的源地址统计出该源地址在该
9、时间段内发出的ip包的个数,将其写入日志文件中或用图形表示出来。同时应用winpcap,winpcap提供了很好的捕获网络数据包的方法,通过本次课程设计可以将vc+知识与winpcap结合起来实现在一段时间内对ip数据包的流量进行统计,加深了对winpcap的理解和运用能力。 1.2 课程设计的要求 (1)理解运用vc+软件实现对网络中的ip数据抱流量的统计方法和步骤。 (2)学习简单的mfc框架结构;(3)加深理解tcp/ip协议以及ip数据抱的格式;(4)提高网络编程能力,增加实际应用能力;(5)学会文献检索的基本方法和综合运用文献的能力。 1.3 设计平台 microsoft visua
10、l c+ 6.0 2、 设计原理 ip是icp/ip协议体系中的网络层协议,tcp、udp、icmp和igmp等其他协议都是以ip 协议为基础的。程序中用到的winpcap是unix下的lipbcap移植到windows下的产物,是win32环境下数据包捕获的开放代码函数库。winpcap由内核级的数据包过滤器,底层动态链接库(packet.dll)和一个高层的独立于系统的库(wpcap.dll)组成。 2.1 ip协议 ip是tcp/ip模型中的网络层协议,又称为互联网协议,是支持网间互连的数据报协议,它与tcp协议一起构成了tcp/ip协议族的核心。它提供网间连接的完善功能,包括ip数据报
11、规定互联网范围内的ip地址格式。在因特网中ip协议是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守ip协议就可以与因特网互连互通。ip地址具有唯一性。ip协议的特点如下: ip协议是一种不可靠、无连接的数据报传送协议。 ip协议是点对点的网络层通信协议。 ip协议向通信层隐藏了物理网络的差异。 ip协议以一种数据报的形式传输数据,每个数据报独立传输,可能通过不同路径传输,因此可能不按顺序到达目的地,或者出现重复。 2.2 关于winpcap库 winpcap(windows packet capture)
12、是windows平台下一个基于windows的网络接口api库。主要为win32应用程序提供访问网络底层的能力。winpcap的主要功能在于独立于主机协议(如tcp/ip)发送和接收原始数据报。winpcap不能阻塞、过滤或控制其他应用程序数据报的收发,它只是监听共享网络上传送的数据报。 其功能有: 捕获原始数据包,包括在共享网络上各主机发送接收的以及相互之间交换的数据包; 在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉; 在网络上发送原始数据包; 收集网络通信过程中的统计信息。 winpcap是针对win32平台上的抓包和网络分析的一个架构,它包括一个核心态的包过滤器,一
13、个底层的动态链接库(packet.dll)和一个高层的不依赖于系统的库(wpcap.dll)。它由packet、npf(netgroup packet filter)、packet.dll、wpcap.dll、application组成。 winpcap提供了两个不同的库:packet.dll和wpcap.dll。前者提供了一个底层api,这些api可以直接用来访问驱动的函数;后者导出了一组更强大的与libpcap一致的高层抓包函数库,这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行。 3 程序代码设计步骤 根据以上设计原理,我设计的得到流量统计程序的主要功能模块如下图: 图中
14、,窗口初始化模块主要是查找网卡,并将所有网卡存入数组,并在自己制作的界面窗口中的网卡下拉列表中显示第0号网卡的信息。设置各个按钮的状态:“开始捕捉”、“停止”、“退出”按钮有效,“清除列表”按钮无效,“状态显示”显示空闲,“统计数据包数”显示0;捕获模块是在选择完正确的网卡后,要系统自动找到相应的网卡号,以混杂模式打开网卡、获取子网掩码、编译并设置过滤器,设置按钮的状态和状态栏的状态,最后启动线程。线程模块主要实现循环捉包并将包的源ip和对于的包数存入链表,当按下“停止”按钮时,线程结束,将链表中的源ip和对于的包数输出显示到界面中的列表中,更新状态栏。停止模块主要是当按钮按下是,立即结束线程
15、,更新状态栏并将界面列表中的信息写入日志文件保存起来。根据流量设计程序的主要功能模块,相应的程序实现主要的代码如下: 初始化模块:bool cippackdlg:oninitdialog()cdialog:oninitdialog();if(pcap_findalldevs(&alldevs,errbuf)=-1) /查找网卡 messagebox(找不到网卡!);int i;for(d=alldevs,i=0;d;d=d-next,i+) /d指向当前网卡,m_comboboxx.addstring(d-description); /下拉列表中显示网卡描述alldevi=d; /将网卡存入数
16、组中 m_comboboxx.setcursel(0); /下拉列表中第一项显示0号网卡m_listcontrol.insertcolumn(0,source ip address,lvcfmt_left,150,-1); m_listcontrol.insertcolumn(1,packet numbers, lvcfmt_right, 100 -1 ); getdlgitem(idc_button3)-enablewindow(false); /停止按钮不可用捕获模块:void cippackdlg:oncapture() char packet_filter=ip; /过滤,选择ip协议
17、pcap_if_t *head=null;int i,k;k=m_comboboxx.getcursel();for(d=alldevs,i=0;inext,i+);head=d;/以混杂模式打开网卡 if(fp=pcap_open_live(head-name,1000,1,1000,errbuf)=null) coutnunable to open the adapter.addresses!=null) /获取子网掩码 netmask=(struct sockaddr_in*)(head-addresses-netmask)-sin_addr.s_un.s_addr; else netm
18、ask=0xffffff; /没地址就设为c类地址 if(pcap_compile(fp,&fcode,packet_filter,1,netmask)0) coutnunable to compile the packet filter. check the syntax.n; pcap_freealldevs(alldevs); return; if(pcap_setfilter(fp,&fcode)0) /设置过滤器 coutsetwindowtext(正在捕获中.); /显示当前状态getdlgitem(idc_combo1)-enablewindow(false); /网卡列表不可用
19、 getdlgitem(idc_button1)-enablewindow(false); /开始捕获按钮不可用 getdlgitem(idc_button2)-enablewindow(true); /停止按钮变为可用cwinthread* cap; /定义线程cap=afxbeginthread(afx_threadproc)threadcap,this); /创建线程并立即执行线程模块:uint threadcap(lpvoid param)cippackdlg * c1=(cippackdlg *)param;capstop=true; /信号量赋值,线程可用struct pcap_p
20、kthdr *header; /被捕获的包存人文件时,这个结构被加在包头 const unsigned char *pkt_data; cippackdlg* pall=(cippackdlg*)(cwnd:fromhandle(afxgetmainwnd()-m_hwnd); /获得指向主边框窗口类对象的指针int res;while(res=pcap_next_ex(c1-fp,&header,&pkt_data)=0) if(res=0) /如果超时没抓到包,则结束此次循环 continue; if(capstop=false) break; /接收到停止按钮发来的终止线程信号,终止线程
21、 ip_header *ih; ih=(ip_header *)(pkt_data+14); /找到ip头的位置,以太头得长度为14 link.addnode(ih-saddr); /将源ip地址加入链表 long cnt=0; for(ipnode* ptemp=link.getphead();ptemp;ptemp=ptemp-pnext) /输出结果到列表 long ltemp=ptemp-getipaddress(); long r=ptemp-getcount(); cnt=cnt+r;/将存储的源ip地址输出到列表控制框中 int row =c1-m_listcontrol.ins
22、ertitem(0,inet_ntoa(*(in_addr*)&(ltemp); c1-m_listcontrol.setitemtext(row,0,inet_ntoa(*(in_addr*)&(ltemp); cstring rstr; rstr.format(%ldn,r); c1-m_listcontrol.setitemtext(row,1,rstr); cstring s; s.format(%ldn,cnt); pall-getdlgitem(idc_clock)-setwindowtext(s); /更新“统计数据包数”状态 return 1;停止模块:void cippack
23、dlg:onstop() getdlgitem(idc_state)-setwindowtext(已停止捕获!); /显示当前状态getdlgitem(idc_combo1)-enablewindow(true); /网卡列表可用 getdlgitem(idc_button1)-enablewindow(true); /开始捕获按钮可用 getdlgitem(idc_button2)-enablewindow(false); /停止按钮不可用getdlgitem(idc_button3)-enablewindow(true); /清除列表按钮可用capstop=false; /发送信号,终止线
24、程ofstream fout(login.txt,ios:app); /创建日志并记录文件 foutt捕获ip包记录如下:endl; /往日志文件写信息 fout开始时间为:; time_t tmp=time(null); foutctime(&tmp); /写入当前系统时间作为捕获开始时间 fout sour ip address tpacket numberspnext) /将输出结果写如日志 long ltemp=ptemp-getipaddress(); long r=ptemp-getcount(); foutendl inet_ntoa(*(in_addr*)&(ltemp)t;
25、fouttgetcount()m_hwnd); /统计数据包数显示框清0cstring s; s.format(%ldn,0);pall-getdlgitem(idc_clock)-setwindowtext(s);link.link_delete();退出程序:void cippackdlg:on_exit() /关闭对话框if(messagebox(是否要退出程序?,请确认!,mb_yesno)=idyes) _exit(error_success);4 结果及分析 安装好winpcap软件,在vc+界面上点击工具-选项-目录。添加include文件夹下的所有文件和lib下的所有内容,调试
26、完程序无误后,直接点击运行,程序将自动保存日志文件login.txt到工程文件夹下。对界面按钮进行操作就可得到程序的运行结果. 5 出现的问题及解决方法 开始做课程设计时,程序中用到的winpcap库文件c+中并没有,需要自己下载winpcap.exe和wpdpack.zip,这里include和lib文件夹里的东西vc+6.0里面没有,出现error:cannot open include file:pcap.h:no such file or directory错误,就需要添加,设置环境。具体步骤如下: 菜单栏-工具-选项(对话框)-目录,在include files 中,把winpcap
27、开发包中的inlude文件添加进去,然后在library files 中把winpcap开发包中的lib文件添加进去。至此,winpcap环境已部署好了不会再出错了。 接下来导致出错的是程序中的一些局部变量与全局变量,放错位置就出错。在类里定义然后在非函数里定义,虽不会报错,但都很运行时报错,出现内存溢出等问题。比如我在cippackdlg类里定义了nodelist link;,然后uint threadcap(lpvoid param),函数要用到link,而函数不是cippackdlg类里的成员函数,无法使用link,当我在函数里定义nodelist link; 当然不会出错,但总是不能输
28、出日志文件 6 心得体会 为期两周的课程设计在自己的努力下很快地结束了,期间受益匪浅。 在自己查找资料的同时也锻炼了我及时捕获有用知识的能力,要懂得如何去学,学习不是被动的,而是主动的,只有这样我们才能学得到对于我们自己有帮助的东西。用vc+编程实现ip数据报流量统计,开始这对于我来说是是一个很模糊的概念,但是当我在查找了很多资料之后我开始了解了,慢慢跟着我所要找的资料完成任务。 这次的课程设计也使我意识到了理论与实践相结合的重要作用,学习到知识应该应用到实践中。在此次的课程设计过程中,熟悉ip包格式和加深对ip协议的理解。了解ip协议的基本内容,对于掌握tcp/ip协议的主要内容和学习网络课
29、程是十分重要的。同时也有助于我学好计算机及各种网络编程语言。 最后,我要说的是:一切事情都要勤于向有经验的人取经,这样才能少走弯路;要珍惜和同学一起讨论和思考的机会,自己的同学是自己最好的帮手,在讨论和争辩中往往会使自己有了很好的想法,就好像在这次课程设计中,如果没有同学的帮助,相信我也不能快速完成界面的设计。 参考文献 计算机网络(第五版) 谢希仁 电子工业出版社计算机网络课程设计 吴功宜 机械工业出版社网络编程与开发技术 殷肖川 西安交通大学出版社c+ primer 第四版 人民邮电出版社深入浅出mfc 候俊杰 电子书 蒅虿膁莂薇袅肇莁蚀蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肃蒇螆蚄聿蒆蒆罿羅蒆薈螂芄
30、蒅蚁羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃膄蒃袄腿膄薆蚇肅芃蚈袂羁节莈蚅袇芁蒀袀芆芀蚂螃膂艿螅罿肈芈蒄螁羄芈薆羇袀芇虿螀膈莆莈羅肄莅蒁螈羀莄薃羃羆莃螅袆芅莂蒅虿膁莂薇袅肇莁蚀蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肃蒇螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蚁羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃膄蒃袄腿膄薆蚇肅芃蚈袂羁节莈蚅袇芁蒀袀芆芀蚂螃膂艿螅罿肈芈蒄螁羄芈薆羇袀芇虿螀膈莆莈羅肄莅蒁螈羀莄薃羃羆莃螅袆芅莂蒅虿膁莂薇袅肇莁蚀蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肃蒇螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蚁羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃膄蒃袄腿膄薆蚇肅
31、芃蚈袂羁节莈蚅袇芁蒀袀芆芀蚂螃膂艿螅罿肈芈蒄螁羄芈薆羇袀芇虿螀膈莆莈羅肄莅蒁螈羀莄薃羃羆莃螅袆芅莂蒅虿膁莂薇袅肇莁蚀蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肃蒇螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蚁羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃膄蒃袄腿膄薆蚇肅芃蚈袂羁节莈蚅袇芁蒀袀芆芀蚂螃膂艿螅罿肈芈蒄螁羄芈薆羇袀芇虿螀膈莆莈羅肄莅蒁螈羀莄薃羃羆莃螅袆芅莂蒅虿膁莂薇袅肇莁蚀蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肃蒇螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蚁羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃膄蒃袄腿膄薆蚇肅芃蚈袂羁节莈蚅袇芁蒀袀芆芀蚂螃膂艿螅罿肈芈蒄螁羄芈薆羇袀芇虿螀膈莆莈羅肄莅蒁螈羀莄薃羃羆
32、莃螅袆芅莂蒅虿膁莂薇袅肇莁蚀蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肃蒇螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蚁羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃膄蒃袄腿膄薆蚇肅芃蚈袂羁节莈蚅袇芁蒀袀芆芀蚂螃膂艿螅罿肈芈蒄螁羄芈薆羇袀芇虿螀膈莆莈羅肄莅蒁螈羀莄薃羃羆莃螅袆芅莂蒅虿膁莂薇袅肇莁蚀蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肃蒇螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蚁羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肃聿膆蚁袅羅膅螄蚈芃膄蒃袄腿膄薆蚇肅芃蚈袂羁节莈蚅袇芁蒀袀芆芀蚂螃膂艿螅罿肈芈蒄螁羄芈薆羇袀芇虿螀膈莆莈羅肄莅蒁螈羀莄薃羃羆莃螅袆芅莂蒅虿膁莂薇袅肇莁蚀蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肃蒇螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蚁羈膀蒄螃螁肆蒃蒂羆羂
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度家具销售定金合同范本大全模板
- 云南省师范大学附属中学2022届高三适应性月考卷(二)政治试题-扫描版含答案
- 生物标志物的发现与应用
- 区域发展战略
- 50个常用安全警示标志-高清A4纸打印
- 镇江江苏镇江市委老干部局编外用工招聘笔试历年典型考点(频考版试卷)附带答案详解
- 行业竞争与产业链协同-洞察分析
- 土壤质地对植物生长适应性-洞察分析
- 探究养护标准制定-第1篇-洞察分析
- 舆情分析中的数据挖掘方法-洞察分析
- 叉车定期检验研究报告
- 人教版一年级数学上册期末无纸笔考试试卷(A卷)【含答案】
- 2,3-二甲苯酚的理化性质及危险特性表
- 申报职称:副教授演示课件
- 型滤池计算说明书
- 格力离心机技术服务手册
- 水泥搅拌桩计算(完美)
- 旭化成离子交换膜的介绍
- JJRB轻钢龙骨隔墙施工方案要点
- 石油石化用化学剂产品质量认可实施细则
- 快递证明模板
评论
0/150
提交评论