版權(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é)議實(shí)現(xiàn)需要哪些數(shù)據(jù)幀?注意要數(shù)據(jù)幀的定義要符合公共標(biāo)準(zhǔn)。2.2如何實(shí)現(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ù)實(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é)議實(shí)現(xiàn)需要哪些數(shù)據(jù)幀?注意要數(shù)據(jù)幀的定義要符合公共標(biāo)準(zhǔn)。2.如何實(shí)現(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實(shí)現(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ù)包的實(shí)例 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è)計與實(shí)現(xiàn),我們成長了很多,也增長了不少知識。也認(rèn)識到了自己的不足之處:以前總是眼高手低,現(xiàn)在真動手操作了,才知道,要想熟練的運(yùn)用學(xué)過的知識,也不是一件簡單易行的事情,需要不斷的積累,不斷的實(shí)踐,不斷的總結(jié)經(jīng)驗(yàn)和教訓(xùn)。同時,在設(shè)計過程中,遇到不會的問題應(yīng)及時跟同學(xué)老師交流,或者查閱相關(guān)文獻(xiàn)資料,這樣才能提高工作效率,并且提高自己的自信心,同時也可以增強(qiáng)團(tuán)隊(duì)合作能力,和與他人的溝通能力。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT 33775-2017 地面數(shù)字電視手持式接收設(shè)備技術(shù)要求和測量方法》專題研究報告
- 《GB-T 25779-2010承重混凝土多孔磚》專題研究報告
- 《GBT 33251-2016 高等學(xué)校知識產(chǎn)權(quán)管理規(guī)范》專題研究報告
- 《AQ-T 3017-2008合成氨生產(chǎn)企業(yè)安全標(biāo)準(zhǔn)化實(shí)施指南》專題研究報告
- 2026年韶關(guān)學(xué)院單招職業(yè)傾向性測試題庫及完整答案詳解1套
- 網(wǎng)紅達(dá)人商業(yè)價值信息評估合同
- 智能網(wǎng)聯(lián)汽車運(yùn)維員崗位招聘考試試卷及答案
- 珠寶行業(yè)珠寶定制設(shè)計師崗位招聘考試試卷及答案
- 2026年檢驗(yàn)科工作計劃范文
- 2025年低熔點(diǎn)金屬膠合作協(xié)議書
- 2025年中小學(xué)教育政策與法規(guī)考試題及答案
- 三借芭蕉扇課件
- (2025年)養(yǎng)老護(hù)理員(初級)職業(yè)技能考核試題及答案
- 2026中國人民銀行直屬事業(yè)單位招聘60人筆試備考題庫帶答案解析
- 湖北省十一校2025-2026學(xué)年高三上學(xué)期12月質(zhì)量檢測語文試題及答案
- 疾控中心學(xué)校流感防控培訓(xùn)
- 【 數(shù)學(xué)】平行線的證明(第1課時)課件 2025-2026學(xué)年北師大版八年級數(shù)學(xué)上冊
- 2025年及未來5年市場數(shù)據(jù)中國焦化行業(yè)市場前景預(yù)測及投資方向研究報告
- 中長導(dǎo)管的維護(hù)和護(hù)理
- 兒科門診規(guī)章制度
- 頂管施工井模板施工方案
評論
0/150
提交評論