freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

解析ip數(shù)據(jù)包課程設(shè)計(jì)-其他專業(yè)-資料下載頁

2025-01-19 02:28本頁面

【導(dǎo)讀】內(nèi)容及要求本設(shè)計(jì)的目標(biāo)是捕獲網(wǎng)絡(luò)中數(shù)據(jù)包,解析數(shù)據(jù)包的內(nèi)容,將、結(jié)果顯示在標(biāo)準(zhǔn)輸出上,并同時寫入日志文件.1)以命令行形式運(yùn)行:ipparselogfile,其中ipparse是程序名,而logfile則代表記錄結(jié)。包總長度,數(shù)據(jù)包標(biāo)識,分段標(biāo)志,分段偏移值,生存時間,上層協(xié)議類型,頭校驗(yàn)和,源IP地址和目的IP地址等內(nèi)容.第二次學(xué)生上機(jī)編程,安裝必要軟件,同時學(xué)習(xí)編程知識。關(guān)問題,從而IP層的工作原理有更好的理解和認(rèn)識.項(xiàng)字段和填充域字段外,其他各字段是定長的.因此,IP數(shù)據(jù)包的頭長度在20—40B之間,頭校驗(yàn)和字段為16位,用于存放檢查報(bào)頭錯誤的校驗(yàn)碼。檢驗(yàn)的范圍是整個IP包的報(bào)。3)將累加的結(jié)果取反碼,就是頭校驗(yàn)和。源地址和目的地址的長度都是32位,分別表示發(fā)送。選項(xiàng)字段的長度范圍為0~40B,主要用于控制和測試。對于其他形式的數(shù)據(jù)包,如已到達(dá)網(wǎng)絡(luò)接口但卻。也就是說應(yīng)用程序無法收取與自己無關(guān)的數(shù)據(jù)包。本程序主要由三部分構(gòu)成:初始化原始套接字,反復(fù)監(jiān)聽捕獲數(shù)據(jù)包和解析數(shù)據(jù)包。

  

【正文】 hostent * pHostIP。 if(pHostIP=gethostbyname(hostName))==NULL) { printf(gethostbyname failed!\n)。 return 1。 } sockaddr_in addr_in。 =*(in_addr*)pHostIPh_addr_list[0]。 =AF_INET。 =htone(6000)。 if(bind(sock,(PSOCKADDR)amp。addr_in,sizeof(addr_in))==SOCKET_ERROR) { printf(bind failed)。 return 1。 } DWORD dwValue=1。 define IO_RCVALL_WSAIOW(IOC_VENDOR,1) DWORD dwBufferLen[10]。 DWORD dwBufferInLen=1。 DWORD dwBytesReturned=0。 if(WSAIoctl(sock,IO_RCVALL,amp。dwBufferInLen,sizeof(dwBufferInLen), 沈陽理工大學(xué)課程設(shè)計(jì)專用紙 14 amp。dwBufferLen,sizeof(dwBufferLen),amp。dwBytesReturned,NULL,NULL)== NULL,NULL)==SOCKET_ERROR) { printf(icotlsocket failed\n)。 return 1。 } define BUFFER_SIZE 65535 char buffer[BUFFER_SIZE]。 printf(開始解析 \n\n)。 while(true) { int size=recv(sock,buffer,BUFFER_SIZE,0)。 if(size0) { ipparse(stdout,buffer)。 ipparse(file,buffer)。 } } fclose(file)。 return 0: } 沈陽理工大學(xué)課程設(shè)計(jì)專用紙 15 六.程序流程圖: N Y 七. 相關(guān)擴(kuò)展 本程序設(shè)計(jì)也可以利用 Winpcap 完成,部分核心代碼的簡略提示如下。 1) 獲取所有存在的網(wǎng)絡(luò)設(shè)備的鏈表。 Pcap_if_t *alldevs。 //網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)鏈表 Char errbuf[PCAP_ERRBUF_SIZE]。 //錯誤信息 /*所有網(wǎng)絡(luò)設(shè)備的信息以鏈表形式存在 alldevs 中 */ pcap_findalldevs(amp。alldevs,errbuf)。 2) 從鏈表中選擇物理 Ether 卡后,用混雜模式打開,調(diào)用的函數(shù)為構(gòu)造程序運(yùn)行環(huán)境,生成輸出文件 開始 Ctrl+Break 創(chuàng)建原始套接字,并初始化 捕獲 IP 包 解析 IP 包 輸出 IP 包信息 結(jié)束 沈陽理工大學(xué)課程設(shè)計(jì)專用紙 16 pcap_open_live(const char*device,int snaplen,int promisc,int to_ms,char*errbuf).在這個函數(shù)中,第一個參數(shù)為要打開的設(shè) 備名稱,這里是 Ether 卡,可以從設(shè)備鏈表 alldevs中選出。第二個參數(shù)應(yīng)為捕獲的數(shù)據(jù)包長度,填入 65535 以保證在鏈路層的整個數(shù)據(jù)包都被捕獲。第三個參數(shù)為打開模式,填入 1 表明用混雜模式打開網(wǎng)卡。最后兩個參數(shù)本別為讀入超時的時間和保存錯誤信息。 2) 編譯、設(shè)置過濾器。 3) char packet_filter[]=”ip”。 pcap_pile(adhandle,amp。fcode,packet_filter,1,mask)。//編譯過濾器 pcap_setfilter(adhandle,amp。fcode)。 //設(shè)置過濾器 adhandle 參數(shù)為網(wǎng)卡描述符, fcode 參數(shù)是一個 BPF 偽匯編程序, packet_filter 參數(shù)用于設(shè)置的過濾規(guī)則,在這里我們只需要捕獲 IP 包。 4) 可利用 pcap_loop 函數(shù)捕獲數(shù)據(jù)包。對于捕獲的數(shù)據(jù)包,去掉數(shù)據(jù)鏈路層的 14B 的頭部后才是真正的 IP 包信息。利用 winpcap 編程和利用 socket 編程在處理 IP 包上并沒有太大區(qū)別,我們依然可以使用 7。 4 節(jié)中采用的數(shù)據(jù)結(jié)構(gòu) IP—— HEADER 來保存、解析 IP 頭部信息。 八.實(shí)習(xí)體會 通過這次實(shí) 驗(yàn),了解到關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)傳送及處理過程中,軟件起到了巨大的作用。熟悉了 VC++在計(jì)算機(jī)網(wǎng)絡(luò)方面的應(yīng)用,是一次難得的機(jī)會。 同學(xué)們的默鍥配合和合作精神是實(shí)驗(yàn)成功的必要條件,而謹(jǐn)慎對待事物的態(tài)度是成功的關(guān)鍵。 九 . 參考文獻(xiàn): 1. 《計(jì)算機(jī)網(wǎng)絡(luò)》 宋凱 劉念 金海月等 2. 《數(shù)據(jù)通信與網(wǎng)絡(luò)(第四版)》吳時霖 周正康 吳永輝 譯 3.《計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)》 吳功宜 胡曉英 張仁 何云 王寧編著
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1