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

正文內(nèi)容

基于winpcap的嗅探器設(shè)計(jì)與實(shí)現(xiàn)-在線瀏覽

2024-08-07 19:27本頁(yè)面
  

【正文】 向應(yīng)用程序提供完善的監(jiān)聽(tīng)接口。概括來(lái)講,WinPcap包含了一個(gè)最優(yōu)化的內(nèi)核模式驅(qū)動(dòng)——稱作NetgroupFilter(NPF),和一套與libpcap兼容的用戶級(jí)函數(shù)庫(kù)。而且,由于網(wǎng)絡(luò)監(jiān)聽(tīng)的重要性,WinPcap還為此提供了特殊的系統(tǒng)調(diào)用函數(shù)。Packet在Unix環(huán)境下,程序員只需要了解Libpcap提供的編程接口即可,Libpcap將應(yīng)用程序與操作系統(tǒng)內(nèi)核之間的相互作用隱藏起來(lái),提供了一套與用戶程序聯(lián)系的函數(shù)和強(qiáng)大的捕獲數(shù)據(jù)包的抽象接口。當(dāng)然,、NPF提供的編程接口,只是后者提供的API更加底層。 ASSERT((IDM_ABOUTBOX amp。 ASSERT(IDM_ABOUTBOX 0xF000)。 if (pSysMenu != NULL) { CString strAboutMenu。 if (!()) { pSysMenuAppendMenu(MF_SEPARATOR)。 } } SetIcon(m_hIcon, TRUE)。 // 設(shè)置小圖標(biāo) ShowWindow(SW_MINIMIZE)。 (0,_T(編號(hào)),3,30)。 (2,_T(長(zhǎng)度),3,72)。 (4,_T(目的MAC地址),3,140)。 (6,_T(源IP地址),3,145)。 (_T(請(qǐng)選擇一個(gè)網(wǎng)卡接口(必選)))。 if(sniffer_initCap()0) return FALSE。dev。 } /*初始化過(guò)濾規(guī)則列表*/ (_T(tcp))。 (_T(ip))。 (_T(arp))。 (0)。 (FALSE)。 // 除非將焦點(diǎn)設(shè)置到控件,否則返回TRUE}捕獲數(shù)據(jù)包//開(kāi)始捕獲int CzszhangDlg::sniffer_startCap(){ int if_index,filter_index,count。 struct bpf_program fcode。 sniffer_initCap()。 filter_index = this()。 return 1。 return 1。 for(count=0。count++) dev=devnext。 pcap_freealldevs(alldev)。 } /*檢查是否為以太網(wǎng)*/ if(pcap_datalink(adhandle)!=DLT_EN10MB) { MessageBox(_T(這不適合于非以太網(wǎng)的網(wǎng)絡(luò)!))。 return 1。 else netmask=0xffffff。 if (pcap_pile(adhandle, amp。 pcap_freealldevs(alldev)。 } }else{ CString str。 int len,x。 len = ()+1。 for(x=0。x++) { filter[x] = (x)。fcode, filter, 1, netmask) 0 ) { MessageBox(_T(語(yǔ)法錯(cuò)誤,無(wú)法編譯過(guò)濾器))。 return 1。fcode)0) { MessageBox(_T(設(shè)置過(guò)濾器錯(cuò)誤))。 return 1。 char thistime[30]。 memset(filepath,0,512)。 if(!(_T(SavedData))) { CreateDirectory(_T(SavedData),NULL)。 time(amp。 ltime=localtime(amp。 strftime(thistime,sizeof(thistime),%Y%m%d %H%M%S,ltime)。 strcat(filename,thistime)。 strcat(filepath,filename)。 if(dumpfile==NULL) { MessageBox(_T(文件創(chuàng)建錯(cuò)誤!))。 } pcap_freealldevs(alldev)。 m_ThreadHandle=CreateThread(NULL,0,sniffer_CapThread,this,0,threadCap)。 CString str。 MessageBox(str)。 } return 1。 struct tm *ltime。 time_t local_tv_sec。 //數(shù)據(jù)包頭 const u_char *pkt_data=NULL,*pData=NULL。 CzszhangDlg *pthis = (CzszhangDlg*) lpParameter。 return 1。header, amp。 struct datapkt *data = (struct datapkt*)malloc(sizeof(struct datapkt))。 if(NULL == data) { MessageBox(NULL,_T(空間已滿,無(wú)法接收新的數(shù)據(jù)包),_T(Error),MB_OK)。 } //分析出錯(cuò)或所接收數(shù)據(jù)包不在處理范圍內(nèi) if(analyze_frame(pkt_data,data,amp。 //將數(shù)據(jù)包保存到打開(kāi)的文件中 if(pthisdumpfile!=NULL) { pcap_dump((unsigned char*)pthisdumpfile,header,pkt_data)。 //將本地化后的數(shù)據(jù)裝入一個(gè)鏈表中,以便后來(lái)使用 ppkt_data = (u_char*)malloc(headerlen)。 pthis(data)。 /*預(yù)處理,獲得時(shí)間、長(zhǎng)度*/ datalen = headerlen。 ltime = localtime(amp。 datatime[0] = ltimetm_year+1900。 datatime[2] = ltimetm_mday。 datatime[4] = ltimetm_min。 /*為新接收到的數(shù)據(jù)包在listControl中新建一個(gè)item*/ (_T(%d),pthisnpkt)。 /*顯示時(shí)間戳*/ (_T(%d/%d/%d %d:%d:%d),datatime[0], datatime[1],datatime[2],datatime[3],datatime[4],datatime[5])。 /*顯示長(zhǎng)度*/ ()。 pthis(nItem,2,buf)。 (_T(%02X%02X%02X%02X%02X%02X),dataethhsrc[0],dataethhsrc[1], dataethhsrc[2],dataethhsrc[3],dataethhsrc[4],dataethhsrc[5])。 /*顯示目的MAC*/ ()。 pthis(nItem,4,buf)。 /*獲得源IP*/ ()。 }else if(0x0800 == dataethhtype) { struct in_addr in。 buf = CString(inet_ntoa(in))。 for(n=0。n++) { if(n=6) (_T(%02x:),dataiph6saddr[n])。 } } pthis(nItem,6,buf)。 if(0x0806 == dataethhtype) { (_T(%d.%d.%d.%d),dataarphar_destip[0], dataarphar_destip[1],dataarphar_destip[2],dataarphar_destip[3])。 = dataiphdaddr。 }else if(0x86dd ==dataethhtype ){ int n。n8。 else (_T(%02x),dataiph6daddr[n])。 /*對(duì)包計(jì)數(shù)*/ pthisnpkt++。}數(shù)據(jù)解析函數(shù)/*分析鏈路層*/int analyze_frame(const u_char * pkt,struct datapkt *
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1