




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
.z.建筑大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)說明書題目:ARP協(xié)議獲取局域網(wǎng)部活動(dòng)主機(jī)物理地址的程序?qū)崿F(xiàn)課程:計(jì)算機(jī)網(wǎng)絡(luò)院(部):計(jì)算機(jī)科學(xué)與技術(shù)專業(yè):網(wǎng)絡(luò)工程班級(jí):網(wǎng)絡(luò)***學(xué)生:***學(xué)號(hào): *****111285指導(dǎo)教師:楠完成日期:2014-7-9-.z.目錄課程設(shè)計(jì)任務(wù)書I使用ARP協(xié)議獲取局域網(wǎng)部活動(dòng)主機(jī)物理地址的程序?qū)崿F(xiàn)1一、問題描述1二、基本要求1三、設(shè)計(jì)思想1四、系統(tǒng)結(jié)構(gòu)1五、程序流程2六、源程序2七、測(cè)試數(shù)據(jù)5八、測(cè)試情況5結(jié)論6-.z.-.z.建筑大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目使用ARP協(xié)議獲取局域網(wǎng)部活動(dòng)主機(jī)物理地址的程序?qū)崿F(xiàn)(Java)已知技術(shù)參數(shù)和設(shè)計(jì)要求1.已知參數(shù):選擇適當(dāng)?shù)木W(wǎng)絡(luò)適配器,以綁定Winpcap。2.設(shè)計(jì)要求: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è)計(jì)容與步驟1.熟悉ARP協(xié)議的工作原理;2.熟悉ARP協(xié)議相關(guān)數(shù)據(jù)幀結(jié)構(gòu);3.構(gòu)造ARP請(qǐng)求數(shù)據(jù)幀;4.使用Winpcap相關(guān)函數(shù)實(shí)現(xiàn)數(shù)據(jù)幀的發(fā)送;5.接收及解析目的主機(jī)的響應(yīng)數(shù)據(jù)幀;6.獲得IP地址與MAC地址的對(duì)應(yīng)關(guān)系并顯示;7.課程設(shè)計(jì)任務(wù)說明書。設(shè)計(jì)工作計(jì)劃與進(jìn)度安排1.知識(shí)準(zhǔn)備,整體思路設(shè)計(jì)2小時(shí)2.開發(fā)環(huán)境與程序調(diào)試環(huán)境4小時(shí)3.構(gòu)造協(xié)議需要的相關(guān)數(shù)據(jù)幀,使用標(biāo)準(zhǔn)數(shù)據(jù)幀結(jié)構(gòu)2小時(shí)4.數(shù)據(jù)幀的發(fā)送10小時(shí)5.接收、解析目的主機(jī)的相應(yīng)數(shù)據(jù)幀,并顯示結(jié)果12小時(shí)6.課程設(shè)計(jì)說明書10小時(shí)10小時(shí)設(shè)計(jì)考核要求1.出勤20%2.答辯或演示30%3.課程設(shè)計(jì)說明書50%-.z.使用ARP協(xié)議獲取局域網(wǎng)部活動(dòng)主機(jī)物理地址的程序?qū)崿F(xiàn)一、問題描述構(gòu)造多個(gè)Arp的數(shù)據(jù)幀。輸入:局域網(wǎng)中的IP地址;輸出:從控制臺(tái)屏幕輸出局域網(wǎng)部活動(dò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è)計(jì)思想首先構(gòu)造ARP的數(shù)據(jù)包,然后通過java對(duì)網(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ù)包返回是否程序一開始會(huì)要求用戶輸入本機(jī)所在局域網(wǎng)的IP字段,再通過循環(huán)對(duì)每個(gè)目的IP發(fā)送請(qǐng)求包(根據(jù)構(gòu)造目的IP構(gòu)造的ARP請(qǐng)求包)。當(dāng)發(fā)送完ARP的請(qǐng)求包,系統(tǒng)就會(huì)在監(jiān)聽狀態(tài),等待是否返回響應(yīng)包。如果有返回包,說明此IP在局域網(wǎng)中并且處于活動(dò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; //打開一個(gè)網(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ù)報(bào)的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請(qǐng)求數(shù)據(jù)報(bào) sender.sendPacket(arp); //接收目標(biāo)主面的答應(yīng)ARP數(shù)據(jù)報(bào) while(true){ ARPPacketp=(ARPPacket)captor.getPacket();//接收返回包 if(p==null){ System.out.println(targetIp+"不是本地局域網(wǎng)的IP號(hào)"); 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("==================================="); } } }}七、測(cè)試數(shù)據(jù)八、測(cè)試情況-.z.結(jié)論通過這段時(shí)間對(duì)本系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),我們成長(zhǎng)了很多,也增長(zhǎng)了不少知識(shí)。也認(rèn)識(shí)到了自己的不足之處:以前總是眼高手低,現(xiàn)在真動(dòng)手操作了,才知道,要想熟練的運(yùn)用學(xué)過的知識(shí),也不是一件簡(jiǎn)單易行的事情,需要不斷的積累,不斷的實(shí)踐,不斷的總結(jié)經(jīng)驗(yàn)和教訓(xùn)。同時(shí),在設(shè)計(jì)過程中,遇到不會(huì)的問題應(yīng)及時(shí)跟同學(xué)老師交流,或者查閱相關(guān)文獻(xiàn)資料,這樣才能提高工作效率,并且提高自己的自信心,同時(shí)也可以增強(qiáng)團(tuán)隊(duì)合作能力,和與他人的溝通能力。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具市場(chǎng)的客戶滿意度分析試題及答案
- 家具設(shè)計(jì)中的材質(zhì)創(chuàng)新探究試題及答案
- 廣安招聘面試題及答案
- 腸道傳染病試題及答案
- 港澳博士面試題及答案
- 消費(fèi)者行為對(duì)電商的影響試題及答案
- 電動(dòng)汽車導(dǎo)入趨勢(shì)考題試題及答案
- 旋律創(chuàng)作中的和聲技巧樂理考試試題及答案
- 建筑行業(yè)安全標(biāo)準(zhǔn)起草程序試題及答案
- 糧食培訓(xùn)考試題及答案
- 靜脈導(dǎo)管常見并發(fā)癥臨床護(hù)理實(shí)踐指南
- 圍手術(shù)期血糖管理專家共識(shí)
- 上肢肘腕關(guān)節(jié)松動(dòng)術(shù)
- (高清版)DZT 0419.3-2022 礦產(chǎn)資源潛力評(píng)價(jià)規(guī)范(1:250 000)第3部分:成礦規(guī)律研究
- 科學(xué)道德與學(xué)術(shù)規(guī)范知識(shí)試題及答案
- 將健康社區(qū)納入社區(qū)發(fā)展規(guī)劃
- 痛風(fēng)科普講座課件
- 心肌梗死的早期識(shí)別與緊急處理
- 國開【形考】《管理英語(3)》形成性考核1-8答案
- 2023學(xué)年完整公開課版用戶思維
評(píng)論
0/150
提交評(píng)論