計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告IP報(bào)檢測(cè)_第1頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告IP報(bào)檢測(cè)_第2頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告IP報(bào)檢測(cè)_第3頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告IP報(bào)檢測(cè)_第4頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告IP報(bào)檢測(cè)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、監(jiān)控ip包流量摘 要 本課程設(shè)計(jì)主要是編制程序,監(jiān)控網(wǎng)絡(luò),捕獲一段時(shí)間內(nèi)網(wǎng)絡(luò)上的ip數(shù)據(jù)包,按ip數(shù)據(jù)包的源地址統(tǒng)計(jì)出該源地址在該時(shí)間段內(nèi)發(fā)出的ip包的個(gè)數(shù),將其寫入日志文件中或用圖形表示出來。程序中會(huì)用到winpcap,它主要功能在于獨(dú)立于主機(jī)協(xié)議發(fā)送和接收原始數(shù)據(jù)報(bào)。本次課程設(shè)計(jì)中用vc+實(shí)現(xiàn)基于winpcap的ip數(shù)據(jù)包的捕獲和統(tǒng)計(jì),根據(jù)獲取網(wǎng)絡(luò)設(shè)備列表,選擇正確的網(wǎng)卡并打開,獲取子網(wǎng)掩碼,編譯、設(shè)置過濾器,捕獲數(shù)據(jù)包;列出源ip地址及其相應(yīng)的包數(shù)。使我們對(duì)于tcp/ip協(xié)議以及ip數(shù)據(jù)抱的格式有了進(jìn)一步的了解和掌握。通過編寫程序從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中ip數(shù)據(jù)包流量的統(tǒng)計(jì)。 1、引言1.1 課

2、程設(shè)計(jì)目的 本次課程設(shè)計(jì)主要是通過用vc+編程實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中ip數(shù)據(jù)包流量的統(tǒng)計(jì),也就是編制程序,監(jiān)控網(wǎng)絡(luò),捕獲一段時(shí)間內(nèi)網(wǎng)絡(luò)上的ip數(shù)據(jù)包,按ip數(shù)據(jù)包的源地址統(tǒng)計(jì)出該源地址在該時(shí)間段內(nèi)發(fā)出的ip包的個(gè)數(shù),將其寫入日志文件中或用圖形表示出來。同時(shí)應(yīng)用winpcap,winpcap提供了很好的捕獲網(wǎng)絡(luò)數(shù)據(jù)包的方法,通過本次課程設(shè)計(jì)可以將vc+知識(shí)與winpcap結(jié)合起來實(shí)現(xiàn)在一段時(shí)間內(nèi)對(duì)ip數(shù)據(jù)包的流量進(jìn)行統(tǒng)計(jì),加深了對(duì)winpcap的理解和運(yùn)用能力。 1.2 課程設(shè)計(jì)的要求 (1)理解運(yùn)用vc+軟件實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中的ip數(shù)據(jù)抱流量的統(tǒng)計(jì)方法和步驟。 (2)學(xué)習(xí)簡(jiǎn)單的mfc框架結(jié)構(gòu);(3)加深理解t

3、cp/ip協(xié)議以及ip數(shù)據(jù)抱的格式;(4)提高網(wǎng)絡(luò)編程能力,增加實(shí)際應(yīng)用能力;(5)學(xué)會(huì)文獻(xiàn)檢索的基本方法和綜合運(yùn)用文獻(xiàn)的能力。 1.3 設(shè)計(jì)平臺(tái) microsoft visual c+ 6.0 2、 設(shè)計(jì)原理 ip是icp/ip協(xié)議體系中的網(wǎng)絡(luò)層協(xié)議,tcp、udp、icmp和igmp等其他協(xié)議都是以ip 協(xié)議為基礎(chǔ)的。程序中用到的winpcap是unix下的lipbcap移植到windows下的產(chǎn)物,是win32環(huán)境下數(shù)據(jù)包捕獲的開放代碼函數(shù)庫(kù)。winpcap由內(nèi)核級(jí)的數(shù)據(jù)包過濾器,底層動(dòng)態(tài)鏈接庫(kù)(packet.dll)和一個(gè)高層的獨(dú)立于系統(tǒng)的庫(kù)(wpcap.dll)組成。 2.1 ip協(xié)

4、議 ip是tcp/ip模型中的網(wǎng)絡(luò)層協(xié)議,又稱為互聯(lián)網(wǎng)協(xié)議,是支持網(wǎng)間互連的數(shù)據(jù)報(bào)協(xié)議,它與tcp協(xié)議一起構(gòu)成了tcp/ip協(xié)議族的核心。它提供網(wǎng)間連接的完善功能,包括ip數(shù)據(jù)報(bào)規(guī)定互聯(lián)網(wǎng)范圍內(nèi)的ip地址格式。在因特網(wǎng)中ip協(xié)議是能使連接到網(wǎng)上的所有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)相互通信的一套規(guī)則,規(guī)定了計(jì)算機(jī)在因特網(wǎng)上進(jìn)行通信時(shí)應(yīng)當(dāng)遵守的規(guī)則。任何廠家生產(chǎn)的計(jì)算機(jī)系統(tǒng),只要遵守ip協(xié)議就可以與因特網(wǎng)互連互通。ip地址具有唯一性。ip協(xié)議的特點(diǎn)如下: ip協(xié)議是一種不可靠、無連接的數(shù)據(jù)報(bào)傳送協(xié)議。 ip協(xié)議是點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò)層通信協(xié)議。 ip協(xié)議向通信層隱藏了物理網(wǎng)絡(luò)的差異。 ip協(xié)議以一種數(shù)據(jù)報(bào)的形式傳輸數(shù)據(jù),

5、每個(gè)數(shù)據(jù)報(bào)獨(dú)立傳輸,可能通過不同路徑傳輸,因此可能不按順序到達(dá)目的地,或者出現(xiàn)重復(fù)。 2.2 關(guān)于winpcap庫(kù) winpcap(windows packet capture)是windows平臺(tái)下一個(gè)基于windows的網(wǎng)絡(luò)接口api庫(kù)。主要為win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。winpcap的主要功能在于獨(dú)立于主機(jī)協(xié)議(如tcp/ip)發(fā)送和接收原始數(shù)據(jù)報(bào)。winpcap不能阻塞、過濾或控制其他應(yīng)用程序數(shù)據(jù)報(bào)的收發(fā),它只是監(jiān)聽共享網(wǎng)絡(luò)上傳送的數(shù)據(jù)報(bào)。 其功能有: 捕獲原始數(shù)據(jù)包,包括在共享網(wǎng)絡(luò)上各主機(jī)發(fā)送接收的以及相互之間交換的數(shù)據(jù)包; 在數(shù)據(jù)包發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則將

6、某些特殊的數(shù)據(jù)包過濾掉; 在網(wǎng)絡(luò)上發(fā)送原始數(shù)據(jù)包; 收集網(wǎng)絡(luò)通信過程中的統(tǒng)計(jì)信息。 winpcap是針對(duì)win32平臺(tái)上的抓包和網(wǎng)絡(luò)分析的一個(gè)架構(gòu),它包括一個(gè)核心態(tài)的包過濾器,一個(gè)底層的動(dòng)態(tài)鏈接庫(kù)(packet.dll)和一個(gè)高層的不依賴于系統(tǒng)的庫(kù)(wpcap.dll)。它由packet、npf(netgroup packet filter)、packet.dll、wpcap.dll、application組成。 winpcap提供了兩個(gè)不同的庫(kù):packet.dll和wpcap.dll。前者提供了一個(gè)底層api,這些api可以直接用來訪問驅(qū)動(dòng)的函數(shù);后者導(dǎo)出了一組更強(qiáng)大的與libpcap一致

7、的高層抓包函數(shù)庫(kù),這些函數(shù)使得數(shù)據(jù)包的捕獲以一種與網(wǎng)絡(luò)硬件和操作系統(tǒng)無關(guān)的方式進(jìn)行。 3 程序代碼設(shè)計(jì)步驟 根據(jù)以上設(shè)計(jì)原理,我設(shè)計(jì)的得到流量統(tǒng)計(jì)程序的主要功能模塊如下圖: 圖中,窗口初始化模塊主要是查找網(wǎng)卡,并將所有網(wǎng)卡存入數(shù)組,并在自己制作的界面窗口中的網(wǎng)卡下拉列表中顯示第0號(hào)網(wǎng)卡的信息。設(shè)置各個(gè)按鈕的狀態(tài):“開始捕捉”、“停止”、“退出”按鈕有效,“清除列表”按鈕無效,“狀態(tài)顯示”顯示空閑,“統(tǒng)計(jì)數(shù)據(jù)包數(shù)”顯示0;捕獲模塊是在選擇完正確的網(wǎng)卡后,要系統(tǒng)自動(dòng)找到相應(yīng)的網(wǎng)卡號(hào),以混雜模式打開網(wǎng)卡、獲取子網(wǎng)掩碼、編譯并設(shè)置過濾器,設(shè)置按鈕的狀態(tài)和狀態(tài)欄的狀態(tài),最后啟動(dòng)線程。線程模塊主要實(shí)現(xiàn)循環(huán)

8、捉包并將包的源ip和對(duì)于的包數(shù)存入鏈表,當(dāng)按下“停止”按鈕時(shí),線程結(jié)束,將鏈表中的源ip和對(duì)于的包數(shù)輸出顯示到界面中的列表中,更新狀態(tài)欄。停止模塊主要是當(dāng)按鈕按下是,立即結(jié)束線程,更新狀態(tài)欄并將界面列表中的信息寫入日志文件保存起來。根據(jù)流量設(shè)計(jì)程序的主要功能模塊,相應(yīng)的程序?qū)崿F(xiàn)主要的代碼如下: 初始化模塊:bool cippackdlg:oninitdialog()cdialog:oninitdialog();if(pcap_findalldevs(&alldevs,errbuf)=-1) /查找網(wǎng)卡 messagebox(找不到網(wǎng)卡!);int i;for(d=alldevs,i=0;d;d

9、=d-next,i+) /d指向當(dāng)前網(wǎng)卡,m_comboboxx.addstring(d-description); /下拉列表中顯示網(wǎng)卡描述alldevi=d; /將網(wǎng)卡存入數(shù)組中 m_comboboxx.setcursel(0); /下拉列表中第一項(xiàng)顯示0號(hào)網(wǎng)卡m_listcontrol.insertcolumn(0,source ip address,lvcfmt_left,150,-1); m_listcontrol.insertcolumn(1,packet numbers, lvcfmt_right, 100 -1 ); getdlgitem(idc_button3)-enable

10、window(false); /停止按鈕不可用捕獲模塊:void cippackdlg:oncapture() char packet_filter=ip; /過濾,選擇ip協(xié)議pcap_if_t *head=null;int i,k;k=m_comboboxx.getcursel();for(d=alldevs,i=0;inext,i+);head=d;/以混雜模式打開網(wǎng)卡 if(fp=pcap_open_live(head-name,1000,1,1000,errbuf)=null) coutnunable to open the adapter.addresses!=null) /獲取子

11、網(wǎng)掩碼 netmask=(struct sockaddr_in*)(head-addresses-netmask)-sin_addr.s_un.s_addr; else netmask=0xffffff; /沒地址就設(shè)為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) /設(shè)置過

12、濾器 coutsetwindowtext(正在捕獲中.); /顯示當(dāng)前狀態(tài)getdlgitem(idc_combo1)-enablewindow(false); /網(wǎng)卡列表不可用 getdlgitem(idc_button1)-enablewindow(false); /開始捕獲按鈕不可用 getdlgitem(idc_button2)-enablewindow(true); /停止按鈕變?yōu)榭捎胏winthread* cap; /定義線程cap=afxbeginthread(afx_threadproc)threadcap,this); /創(chuàng)建線程并立即執(zhí)行線程模塊:uint threadca

13、p(lpvoid param)cippackdlg * c1=(cippackdlg *)param;capstop=true; /信號(hào)量賦值,線程可用struct pcap_pkthdr *header; /被捕獲的包存人文件時(shí),這個(gè)結(jié)構(gòu)被加在包頭 const unsigned char *pkt_data; cippackdlg* pall=(cippackdlg*)(cwnd:fromhandle(afxgetmainwnd()-m_hwnd); /獲得指向主邊框窗口類對(duì)象的指針int res;while(res=pcap_next_ex(c1-fp,&header,&pkt_data)

14、=0) if(res=0) /如果超時(shí)沒抓到包,則結(jié)束此次循環(huán) continue; if(capstop=false) break; /接收到停止按鈕發(fā)來的終止線程信號(hào),終止線程 ip_header *ih; ih=(ip_header *)(pkt_data+14); /找到ip頭的位置,以太頭得長(zhǎng)度為14 link.addnode(ih-saddr); /將源ip地址加入鏈表 long cnt=0; for(ipnode* ptemp=link.getphead();ptemp;ptemp=ptemp-pnext) /輸出結(jié)果到列表 long ltemp=ptemp-getipaddres

15、s(); long r=ptemp-getcount(); cnt=cnt+r;/將存儲(chǔ)的源ip地址輸出到列表控制框中 int row =c1-m_listcontrol.insertitem(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,cn

16、t); pall-getdlgitem(idc_clock)-setwindowtext(s); /更新“統(tǒng)計(jì)數(shù)據(jù)包數(shù)”狀態(tài) return 1;停止模塊:void cippackdlg:onstop() getdlgitem(idc_state)-setwindowtext(已停止捕獲!); /顯示當(dāng)前狀態(tài)getdlgitem(idc_combo1)-enablewindow(true); /網(wǎng)卡列表可用 getdlgitem(idc_button1)-enablewindow(true); /開始捕獲按鈕可用 getdlgitem(idc_button2)-enablewindow(fals

17、e); /停止按鈕不可用getdlgitem(idc_button3)-enablewindow(true); /清除列表按鈕可用capstop=false; /發(fā)送信號(hào),終止線程ofstream fout(login.txt,ios:app); /創(chuàng)建日志并記錄文件 foutt捕獲ip包記錄如下:endl; /往日志文件寫信息 fout開始時(shí)間為:; time_t tmp=time(null); foutctime(&tmp); /寫入當(dāng)前系統(tǒng)時(shí)間作為捕獲開始時(shí)間 fout sour ip address tpacket numberspnext) /將輸出結(jié)果寫如日志 long ltemp

18、=ptemp-getipaddress(); long r=ptemp-getcount(); foutendl inet_ntoa(*(in_addr*)&(ltemp)t; fouttgetcount()m_hwnd); /統(tǒng)計(jì)數(shù)據(jù)包數(shù)顯示框清0cstring s; s.format(%ldn,0);pall-getdlgitem(idc_clock)-setwindowtext(s);link.link_delete();退出程序:void cippackdlg:on_exit() /關(guān)閉對(duì)話框if(messagebox(是否要退出程序?,請(qǐng)確認(rèn)!,mb_yesno)=idyes) _e

19、xit(error_success);4 結(jié)果及分析 安裝好winpcap軟件,在vc+界面上點(diǎn)擊工具-選項(xiàng)-目錄。添加include文件夾下的所有文件和lib下的所有內(nèi)容,調(diào)試完程序無誤后,直接點(diǎn)擊運(yùn)行,程序?qū)⒆詣?dòng)保存日志文件login.txt到工程文件夾下。對(duì)界面按鈕進(jìn)行操作就可得到程序的運(yùn)行結(jié)果. 5 出現(xiàn)的問題及解決方法 開始做課程設(shè)計(jì)時(shí),程序中用到的winpcap庫(kù)文件c+中并沒有,需要自己下載winpcap.exe和wpdpack.zip,這里include和lib文件夾里的東西vc+6.0里面沒有,出現(xiàn)error:cannot open include file:pcap.h:n

20、o such file or directory錯(cuò)誤,就需要添加,設(shè)置環(huán)境。具體步驟如下: 菜單欄-工具-選項(xiàng)(對(duì)話框)-目錄,在include files 中,把winpcap開發(fā)包中的inlude文件添加進(jìn)去,然后在library files 中把winpcap開發(fā)包中的lib文件添加進(jìn)去。至此,winpcap環(huán)境已部署好了不會(huì)再出錯(cuò)了。 接下來導(dǎo)致出錯(cuò)的是程序中的一些局部變量與全局變量,放錯(cuò)位置就出錯(cuò)。在類里定義然后在非函數(shù)里定義,雖不會(huì)報(bào)錯(cuò),但都很運(yùn)行時(shí)報(bào)錯(cuò),出現(xiàn)內(nèi)存溢出等問題。比如我在cippackdlg類里定義了nodelist link;,然后uint threadcap(lpv

21、oid param),函數(shù)要用到link,而函數(shù)不是cippackdlg類里的成員函數(shù),無法使用link,當(dāng)我在函數(shù)里定義nodelist link; 當(dāng)然不會(huì)出錯(cuò),但總是不能輸出日志文件 6 心得體會(huì) 為期兩周的課程設(shè)計(jì)在自己的努力下很快地結(jié)束了,期間受益匪淺。 在自己查找資料的同時(shí)也鍛煉了我及時(shí)捕獲有用知識(shí)的能力,要懂得如何去學(xué),學(xué)習(xí)不是被動(dòng)的,而是主動(dòng)的,只有這樣我們才能學(xué)得到對(duì)于我們自己有幫助的東西。用vc+編程實(shí)現(xiàn)ip數(shù)據(jù)報(bào)流量統(tǒng)計(jì),開始這對(duì)于我來說是是一個(gè)很模糊的概念,但是當(dāng)我在查找了很多資料之后我開始了解了,慢慢跟著我所要找的資料完成任務(wù)。 這次的課程設(shè)計(jì)也使我意識(shí)到了理論與實(shí)踐

22、相結(jié)合的重要作用,學(xué)習(xí)到知識(shí)應(yīng)該應(yīng)用到實(shí)踐中。在此次的課程設(shè)計(jì)過程中,熟悉ip包格式和加深對(duì)ip協(xié)議的理解。了解ip協(xié)議的基本內(nèi)容,對(duì)于掌握tcp/ip協(xié)議的主要內(nèi)容和學(xué)習(xí)網(wǎng)絡(luò)課程是十分重要的。同時(shí)也有助于我學(xué)好計(jì)算機(jī)及各種網(wǎng)絡(luò)編程語(yǔ)言。 最后,我要說的是:一切事情都要勤于向有經(jīng)驗(yàn)的人取經(jīng),這樣才能少走彎路;要珍惜和同學(xué)一起討論和思考的機(jī)會(huì),自己的同學(xué)是自己最好的幫手,在討論和爭(zhēng)辯中往往會(huì)使自己有了很好的想法,就好像在這次課程設(shè)計(jì)中,如果沒有同學(xué)的幫助,相信我也不能快速完成界面的設(shè)計(jì)。 參考文獻(xiàn) 計(jì)算機(jī)網(wǎng)絡(luò)(第五版) 謝希仁 電子工業(yè)出版社計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì) 吳功宜 機(jī)械工業(yè)出版社網(wǎng)絡(luò)編程與開

23、發(fā)技術(shù) 殷肖川 西安交通大學(xué)出版社c+ primer 第四版 人民郵電出版社深入淺出mfc 候俊杰 電子書 蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈羀莄薃羃羆莃螅袆芅莂蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈

24、羀莄薃羃羆莃螅袆芅莂蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈羀莄薃羃羆莃螅袆芅莂蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈羀莄薃羃羆莃螅袆芅莂蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂

25、芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈羀莄薃羃羆莃螅袆芅莂蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈羀莄薃羃羆莃螅袆芅莂蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈羀莄薃羃羆莃螅袆芅莂蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈羀莄薃羃羆莃螅袆芅莂蒅蠆膁莂薇裊肇莁蝕蚇羃莀荿袃衿葿蒂蚆膈蒈薄袁肅蕆螆蚄聿蒆蒆罿羅蒆薈螂芄蒅蟻羈膀蒄螃螁肆蒃蒂羆羂膀薅蝿袈腿蚇羄膇膈莇螇膃膇蕿肅聿膆蟻裊羅膅螄蚈芃膄蒃襖腿膄薆蚇肅芃蚈袂羈節(jié)莈蚅袇芁蒀袀芆芀螞螃膂艿螅罿肈羋蒄螁羄羋薆羇袀芇蠆螀膈莆莈羅肄蒞蒁螈羀莄

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論