




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
.z.建筑大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計說明書題目:ARP協(xié)議獲取局域網(wǎng)部活動主機(jī)物理地址的程序?qū)崿F(xiàn)課程:計算機(jī)網(wǎng)絡(luò)院(部):計算機(jī)科學(xué)與技術(shù)專業(yè):網(wǎng)絡(luò)工程班級:網(wǎng)絡(luò)***學(xué)生:***學(xué)號: *****111285指導(dǎo)教師:楠完成日期:2014-7-9-.z.目錄課程設(shè)計任務(wù)書I使用ARP協(xié)議獲取局域網(wǎng)部活動主機(jī)物理地址的程序?qū)崿F(xiàn)1一、問題描述1二、基本要求1三、設(shè)計思想1四、系統(tǒng)結(jié)構(gòu)1五、程序流程2六、源程序2七、測試數(shù)據(jù)5八、測試情況5結(jié)論6-.z.-.z.建筑大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計任務(wù)書設(shè)計題目使用ARP協(xié)議獲取局域網(wǎng)部活動主機(jī)物理地址的程序?qū)崿F(xiàn)(Java)已知技術(shù)參數(shù)和設(shè)計要求1.已知參數(shù):選擇適當(dāng)?shù)木W(wǎng)絡(luò)適配器,以綁定Winpcap。2.設(shè)計要求:2.1協(xié)議實現(xiàn)需要哪些數(shù)據(jù)幀?注意要數(shù)據(jù)幀的定義要符合公共標(biāo)準(zhǔn)。2.2如何實現(xiàn)數(shù)據(jù)幀的發(fā)送?2.3如何接收及解析目的主機(jī)的響應(yīng)數(shù)據(jù)幀?2.4如何顯示ARP協(xié)議的執(zhí)行結(jié)果?3.JAVA環(huán)境為Eclipse設(shè)計容與步驟1.熟悉ARP協(xié)議的工作原理;2.熟悉ARP協(xié)議相關(guān)數(shù)據(jù)幀結(jié)構(gòu);3.構(gòu)造ARP請求數(shù)據(jù)幀;4.使用Winpcap相關(guān)函數(shù)實現(xiàn)數(shù)據(jù)幀的發(fā)送;5.接收及解析目的主機(jī)的響應(yīng)數(shù)據(jù)幀;6.獲得IP地址與MAC地址的對應(yīng)關(guān)系并顯示;7.課程設(shè)計任務(wù)說明書。設(shè)計工作計劃與進(jìn)度安排1.知識準(zhǔn)備,整體思路設(shè)計2小時2.開發(fā)環(huán)境與程序調(diào)試環(huán)境4小時3.構(gòu)造協(xié)議需要的相關(guān)數(shù)據(jù)幀,使用標(biāo)準(zhǔn)數(shù)據(jù)幀結(jié)構(gòu)2小時4.數(shù)據(jù)幀的發(fā)送10小時5.接收、解析目的主機(jī)的相應(yīng)數(shù)據(jù)幀,并顯示結(jié)果12小時6.課程設(shè)計說明書10小時10小時設(shè)計考核要求1.出勤20%2.答辯或演示30%3.課程設(shè)計說明書50%-.z.使用ARP協(xié)議獲取局域網(wǎng)部活動主機(jī)物理地址的程序?qū)崿F(xiàn)一、問題描述構(gòu)造多個Arp的數(shù)據(jù)幀。輸入:局域網(wǎng)中的IP地址;輸出:從控制臺屏幕輸出局域網(wǎng)部活動主機(jī)物理地址。二、基本要求1.協(xié)議實現(xiàn)需要哪些數(shù)據(jù)幀?注意要數(shù)據(jù)幀的定義要符合公共標(biāo)準(zhǔn)。2.如何實現(xiàn)數(shù)據(jù)幀的發(fā)送3.如何接收及解析目的主機(jī)的響應(yīng)數(shù)據(jù)幀4.如何顯示ARP協(xié)議的執(zhí)行結(jié)果三、設(shè)計思想首先構(gòu)造ARP的數(shù)據(jù)包,然后通過java對網(wǎng)卡數(shù)據(jù)捕獲需要用到j(luò)pcap,jpcap調(diào)用wincap實現(xiàn)數(shù)據(jù)包的發(fā)送,并監(jiān)聽返回的數(shù)據(jù)包,顯示出來。四、系統(tǒng)結(jié)構(gòu)程序可以分為兩部分:1:程序構(gòu)造具體的ARP數(shù)據(jù)包,發(fā)送。2:監(jiān)聽返回的數(shù)據(jù)包,并顯示結(jié)果。程序流程開始開始輸入目的IP構(gòu)造ARP數(shù)據(jù)包監(jiān)聽返回的數(shù)據(jù)包解析數(shù)據(jù)包,顯示結(jié)果是否有數(shù)據(jù)包返回是否程序一開始會要求用戶輸入本機(jī)所在局域網(wǎng)的IP字段,再通過循環(huán)對每個目的IP發(fā)送請求包(根據(jù)構(gòu)造目的IP構(gòu)造的ARP請求包)。當(dāng)發(fā)送完ARP的請求包,系統(tǒng)就會在監(jiān)聽狀態(tài),等待是否返回響應(yīng)包。如果有返回包,說明此IP在局域網(wǎng)中并且處于活動狀態(tài),解析顯示結(jié)果。如果沒有返回包,說明此IP沒有在局域網(wǎng)或者處于關(guān)機(jī)狀態(tài)六、源程序importjpcap.JpcapCaptor;importjpcap.JpcapSender;importjava.util.Arrays;import.InetAddress;import.Inet4Address;importjpcap.packet.ARPPacket;importjpcap.packet.EthernetPacket;importjpcap.NetworkInterface;importjpcap.NetworkInterfaceAddress;publicclassDemo2{ publicstaticARPPacketgetTargetMAC(InetAddresstargetIp){ NetworkInterface[]devices=JpcapCaptor.getDeviceList(); NetworkInterfacedevice=null; //尋找適合的網(wǎng)絡(luò)設(shè)備 loop:for(NetworkInterfaced:devices){ for(NetworkInterfaceAddressaddr:d.addresses){ if(!(addr.addressinstanceofInet4Address)) continue; byte[]bip=targetIp.getAddress(); byte[]subnet=addr.subnet.getAddress(); byte[]bif=addr.address.getAddress(); for(inti=0;i<4;i++){ bip[i]=(byte)(bip[i]&subnet[i]); bif[i]=(byte)(bif[i]&subnet[i]); } if(Arrays.equals(bip,bif)){ device=d; breakloop; } } } if(device==null) thrownewIllegalArgumentE*ception(targetIp +"isnotalocaladdress"); JpcapCaptorcaptor=null; //打開一個網(wǎng)絡(luò)數(shù)據(jù)包捕捉者 try{ captor=JpcapCaptor.openDevice(device,2000,false,300); //只接收ARP數(shù)包 captor.setFilter("arp",true); }catch(E*ceptione){ } //獲得發(fā)送數(shù)據(jù)包的實例 JpcapSendersender=captor.getJpcapSenderInstance(); InetAddresssrcip=null; for(NetworkInterfaceAddressaddr:device.addresses) if(addr.addressinstanceofInet4Address){ srcip=addr.address; break; } //進(jìn)行廣播數(shù)據(jù)報的MAC地址 byte[]broadcast=newbyte[]{(byte)255,(byte)255,(byte)255, (byte)255,(byte)255,(byte)255}; //構(gòu)造REQUEST類型的ARP的數(shù)據(jù)包 ARPPacketarp=newARPPacket(); arp.hardtype=ARPPacket.HARDTYPE_ETHER; totype=ARPPacket.PROTOTYPE_IP; arp.operation=ARPPacket.ARP_REQUEST; arp.hlen=6; arp.plen=4; //源MAC地址 arp.sender_hardaddr=device.mac_address; //源IP地址 arp.sender_protoaddr=srcip.getAddress(); //目地MAC地址:廣播地址全為1(二進(jìn)制) arp.target_hardaddr=broadcast; //目地IP地址 arp.target_protoaddr=targetIp.getAddress(); //構(gòu)造以太網(wǎng)頭部 EthernetPacketether=newEthernetPacket(); ether.frametype=EthernetPacket.ETHERTYPE_ARP; ether.src_mac=device.mac_address; ether.dst_mac=broadcast; //ARP數(shù)據(jù)包加上以網(wǎng)關(guān)頭部 arp.datalink=ether; //向局域網(wǎng)廣播ARP請求數(shù)據(jù)報 sender.sendPacket(arp); //接收目標(biāo)主面的答應(yīng)ARP數(shù)據(jù)報 while(true){ ARPPacketp=(ARPPacket)captor.getPacket();//接收返回包 if(p==null){ System.out.println(targetIp+"不是本地局域網(wǎng)的IP號"); returnp; }elseif(Arrays.equals(p.target_protoaddr,srcip.getAddress())){ returnp; } } } publicstaticvoidmain(String[]args)throwsE*ception{ Strings="10.13.72."; for(intn=1;n<=254;n++){ System.out.println(s+n); ARPPacketarpP=Demo2.getTargetMAC(InetAddress.getByName(s+n)); if(arpP==null){} else{ System.out.println("硬件類型:"+arpP.hardtype); System.out.println("操作類型:"+arpP.operation); System.out.println("源MAC地址:"+arpP.getSenderHardwareAddress()); System.out.println("源IP地址:"+arpP.getSenderProtocolAddress()); System.out.println("目標(biāo)MAC地址"+arpP.getTargetHardwareAddress()); System.out.println("目標(biāo)IP地址"+arpP.getTargetProtocolAddress()); System.out.println("==================================="); } } }}七、測試數(shù)據(jù)八、測試情況-.z.結(jié)論通過這段時間對本系統(tǒng)的設(shè)計與實現(xiàn),我們成長了很多,也增長了不少知識。也認(rèn)識到了自己的不足之處:以前總是眼高手低,現(xiàn)在真動手操作了,才知道,要想熟練的運用學(xué)過的知識,也不是一件簡單易行的事情,需要不斷的積累,不斷的實踐,不斷的總結(jié)經(jīng)驗和教訓(xùn)。同時,在設(shè)計過程中,遇到不會的問題應(yīng)及時跟同學(xué)老師交流,或者查閱相關(guān)文獻(xiàn)資料,這樣才能提高工作效率,并且提高自己的自信心,同時也可以增強(qiáng)團(tuán)隊合作能力,和與他人的溝通能力。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬礦行業(yè)人才培養(yǎng)與知識管理考核試卷
- 經(jīng)濟(jì)型酒店業(yè)市場趨勢分析考核試卷
- 數(shù)據(jù)庫安全隱患發(fā)現(xiàn)與處理試題及答案
- 計算機(jī)四級軟件測試實時反饋試題及答案
- 未來智能家居中的嵌入式角色試題及答案
- 敏捷測試在項目中的應(yīng)用試題及答案
- 航空器飛行中的機(jī)載娛樂系統(tǒng)與乘客體驗考核試卷
- 信息系統(tǒng)現(xiàn)場應(yīng)用試題及答案
- 解析能力提升的試題及答案清單
- 信息系統(tǒng)監(jiān)理師考試重要考點試題及答案
- 中醫(yī)適宜技術(shù)操作規(guī)程及評分標(biāo)準(zhǔn)
- 植筋錨固深度計算表格
- 醫(yī)療器械設(shè)計開發(fā)到生產(chǎn)轉(zhuǎn)化
- 社區(qū)政審證明模板3篇
- 保護(hù)眼睛家長進(jìn)課堂
- 頸椎JOA腰椎JOA 評分-表格-日本骨科協(xié)會評估治療
- 人工智能時代小學(xué)勞動教育的現(xiàn)實困境與突破路徑 論文
- 野生動物管理學(xué)智慧樹知到答案章節(jié)測試2023年東北林業(yè)大學(xué)
- 質(zhì)量控制計劃(CP)
- 分子篩上課ppt版課件 6 應(yīng)用
- 深基坑專項施工方案(鋼板樁支護(hù))
評論
0/150
提交評論