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

正文內(nèi)容

解析ip數(shù)據(jù)包課程設(shè)計(jì)-其他專(zhuān)業(yè)(存儲(chǔ)版)

  

【正文】 2) 從鏈表中選擇物理 Ether 卡后,用混雜模式打開(kāi),調(diào)用的函數(shù)為構(gòu)造程序運(yùn)行環(huán)境,生成輸出文件 開(kāi)始 Ctrl+Break 創(chuàng)建原始套接字,并初始化 捕獲 IP 包 解析 IP 包 輸出 IP 包信息 結(jié)束 沈陽(yáng)理工大學(xué)課程設(shè)計(jì)專(zhuān)用紙 16 pcap_open_live(const char*device,int snaplen,int promisc,int to_ms,char*errbuf).在這個(gè)函數(shù)中,第一個(gè)參數(shù)為要打開(kāi)的設(shè) 備名稱(chēng),這里是 Ether 卡,可以從設(shè)備鏈表 alldevs中選出。//編譯過(guò)濾器 pcap_setfilter(adhandle,amp。熟悉了 VC++在計(jì)算機(jī)網(wǎng)絡(luò)方面的應(yīng)用,是一次難得的機(jī)會(huì)。 4 節(jié)中采用的數(shù)據(jù)結(jié)構(gòu) IP—— HEADER 來(lái)保存、解析 IP 頭部信息。 pcap_pile(adhandle,amp。 //錯(cuò)誤信息 /*所有網(wǎng)絡(luò)設(shè)備的信息以鏈表形式存在 alldevs 中 */ pcap_findalldevs(amp。 while(true) { int size=recv(sock,buffer,BUFFER_SIZE,0)。 DWORD dwBytesReturned=0。 =AF_INET。 } char hostName[128]。 return 1。 fprintf(file,__________________________________\r\n)。 fprintf(file,分段偏移值 =%d\r\n,fragOff)。 parseServiceType_getTOS()。 BYTE version。 case 6: return TCP。 MF=(w13)amp。 break。 break。 break。 break。 void getVersion(BYTE b,BYTE amp。 }。 五.實(shí)現(xiàn)過(guò)程 include include include include typedef struct _IP_HEADER { union { BYTE Version。0x1fff。0X0F。針對(duì)長(zhǎng)度為 8 位、 16 位和 32 位的字段 (或子字段)時(shí),可以利用 IP_HEADER 的成員指教獲取。 //協(xié)議 WORD HdrChksum。 //報(bào)頭標(biāo)長(zhǎng)(后四位), IP 頭長(zhǎng)度 }; BYTE ServiceType。 在程序中可使用 RECV()函數(shù)接收經(jīng)過(guò)的 IP 包。 DWORD dwBufferInLen=1。 =AF_TNET。 沈陽(yáng)理工大學(xué)課程設(shè)計(jì)專(zhuān)用紙 6 setsockopt (sock,IPPROTO_IP,IP_HDRINCL,(char*)amp。在這里,我們?cè)O(shè)置為SOCK_RAW,表示我們聲明的是一個(gè)原始套接字類(lèi)型。 本程序主要由三部分構(gòu)成:初始化原始套接字,反復(fù)監(jiān)聽(tīng)捕獲數(shù)據(jù)包和解析數(shù)據(jù)包。源地址和目的地址的長(zhǎng)度都是 32 位,分別表示發(fā)送數(shù)據(jù)包的源主機(jī)和目的主機(jī)的 IP 地址。若 DF 值為 0,則表明可以分片 .分片標(biāo)志MF( more fragment)的值為 1,表示接收到的不是最后一個(gè)分片 。校驗(yàn)和按如下方法計(jì)算: 1)將頭校驗(yàn)和的字段置為 0。如果出現(xiàn)這種情況,就需要通過(guò)填充位來(lái)湊齊。要進(jìn)行 IP 數(shù)據(jù)包的接受與發(fā)送,應(yīng)使用原始套接字。第六個(gè)參數(shù)是標(biāo)志位, WSA_FLAG_OVERRLAPPED 表明可以使用發(fā)送接收超時(shí)設(shè)置,本課程設(shè)計(jì)也可以把這個(gè)標(biāo)志位設(shè)置為 NULL,因?yàn)楸驹O(shè)計(jì)不用考慮超時(shí)情況。 gethostname(hostname, 100)。addr_in,sizeof(addr_in))。dwBufferInLen,sizeof(dwBufferInLen),amp。設(shè)置緩沖區(qū)后,可利用 循環(huán)來(lái)反復(fù)監(jiān)聽(tīng)接收 IP 包,用recv()函數(shù)接收功能的代碼如下: dedine BUFFER_SIZE 65535 Char buffer[BUFFER_SIZE]。 //標(biāo)識(shí) union { WORD Flags。 //選項(xiàng) }IP_HEADER。 /*獲取版本字段 */ 4。 /*解析標(biāo)識(shí)字段 */ DF=(14) amp。 /*獲取頭校驗(yàn)和字段 */ 。 BYTE ServiceType。 WORD HdrChksum。 result) { result = (b amp。 case 4: return Flash Override。 case 0: return Routine。 case 2: return Maximize reliability。 default: return Unknown。 fragoff) { fragoff=wamp。 case 41: return IPv6。 BYTE headerLen。 BYTE DF,MF。 fprintf(file,頭校驗(yàn)和 =0x%0x\r\n,)。 } FILE * file。 return 1。 } hostent * pHostIP。addr_in,sizeof(addr_in))==SOCKET_ERROR) { printf(bind failed)。dwBufferLen,sizeof(dwBufferLen),amp。 } } fclose(file)。第二個(gè)參數(shù)應(yīng)為捕獲的數(shù)據(jù)包長(zhǎng)度,填入 65535 以保證在鏈路層的整個(gè)數(shù)據(jù)包都被捕獲。fcode)。 同學(xué)們的默鍥配合和合作精神是實(shí)驗(yàn)成功的必要條件,而謹(jǐn)慎對(duì)待事物的態(tài)度是成功的關(guān)鍵。利用 winpcap 編程和利用 socket 編程在處理 IP 包上并沒(méi)有太大區(qū)別,我們依然可以
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1