亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

基于VC實現的網絡監聽功能程序實例

2020-01-26 15:26:28
字體:
來源:轉載
供稿:網友

本文所述VC++網絡監聽器代碼,可以實現監聽網絡連接所使用的協議、源IP地址、目標IP地址等信息的功能,并且能把數據內容綁定到網格控件中顯示。具體功能代碼部分如下所示:

//線程函數UINT ThreadFun( LPVOID pParam ){ CSniffAppDlg* pDlg = static_cast<CSniffAppDlg*>(pParam); MSG msg; char buffer[1000],sourceip[32] ,*tempbuf; char *ptemp; BYTE* pData = NULL; //實際數據報中的數據 UINT sourceport ; CString str; HEADIP*  pHeadIP; HEADICMP* pHeadICMP; HEADUDP*  pHeadUDP; HEADTCP*  pHeadTCP; in_addr addr; int ret; while (TRUE) { pData = NULL; if (PeekMessage(&msg,pDlg->m_hWnd,WM_CLOSE,WM_CLOSE,PM_NOREMOVE )) {  closesocket(pDlg->m_Sock);  break;  } memset(buffer,0,1000); ret = recv(pDlg->m_Sock,buffer,1000,0);  if (ret == SOCKET_ERROR) {  continue; } else //接收到數據 {  tempbuf = buffer;  pHeadIP = (HEADIP*)tempbuf;  //獲取數據報總長度  WORD len = ntohs(pHeadIP->totallen);    //獲取源IP  pDlg->m_List.InsertItem(pDlg->m_List.GetItemCount(),"");  addr.S_un.S_addr = pHeadIP->sourceIP;  ptemp = inet_ntoa(addr);    pDlg->m_List.SetItemText(pDlg->m_List.GetItemCount()-1,1,ptemp);   //獲取目的IP  addr.S_un.S_addr = pHeadIP->destIP;  ptemp = inet_ntoa(addr);  pDlg->m_List.SetItemText(pDlg->m_List.GetItemCount()-1,2,ptemp);    //獲取協議名稱  ptemp = get_protoname(pHeadIP->proto);  strcpy(sourceip,ptemp);  pDlg->m_List.SetItemText(pDlg->m_List.GetItemCount()-1,0,sourceip);    //獲取IP數據報總長度  WORD ipSumLen = ntohs(pHeadIP->totallen);    //IP數據報頭總長度  int ipHeadLen = 20;  //獲得去除IP層數據的長度  WORD netlen = ipSumLen - ipHeadLen;    //根據不同大協議獲得不同協議的數據  switch (pHeadIP->proto)  {  case IPPROTO_ICMP:  {   pHeadICMP = (HEADICMP*)(tempbuf+20);       pData = (BYTE*)(pHeadICMP)+4; //ICMP數據報頭共4個字節      //獲取數據的長度   netlen -= 4;   break;  }  case IPPROTO_UDP:  {   pHeadUDP = (HEADUDP*)(tempbuf+20);    pData = (BYTE*)pHeadUDP+8; //UDP數據報頭共8個字節   sourceport = ntohs(pHeadUDP->SourcePort);   str.Format("%d",sourceport);   //設置源端口   pDlg->m_List.SetItemText(pDlg->m_List.GetItemCount()-1,3,str);    str.Empty();   netlen -= 8;     break;  }  case IPPROTO_TCP:  {   pHeadTCP = (HEADTCP*)(tempbuf+20);   sourceport = ntohs(pHeadTCP->SourcePort);      pData = (BYTE*)pHeadTCP+20; //TCP數據報頭共20個字節   str.Format("%d",sourceport);   //設置源端口   pDlg->m_List.SetItemText(pDlg->m_List.GetItemCount()-1,3,str);    str.Empty();   netlen-= 20;     break;  }       }  //設置數據大小  str.Format("%d",netlen);  pDlg->m_List.SetItemText(pDlg->m_List.GetItemCount()-1,4,str);  str.Empty();  //設置數據  if (pData != NULL)  {  str.Format(" %s",pData);  pDlg->m_List.SetItemText(pDlg->m_List.GetItemCount()-1,5,str);  }  str.Empty(); } } return 0;}void CSniffAppDlg::OnBeginlisten() { //創建套接字 m_Sock = socket(AF_INET,SOCK_RAW, IPPROTO_IP ); char name[128]; memset(name,0,128); hostent* phostent; phostent = gethostbyname(name); DWORD ip; ip = inet_addr(inet_ntoa(*(in_addr*)phostent->h_addr_list[0])); int timeout = 4000; //超時4秒 //設置接收數據的超時時間 setsockopt(m_Sock,SOL_SOCKET,SO_RCVTIMEO,(const char*)&timeout,sizeof(timeout)); sockaddr_in skaddr; skaddr.sin_family = AF_INET; skaddr.sin_port = htons(700); skaddr.sin_addr.S_un.S_addr = ip; //綁定地址 if ( bind(m_Sock,(sockaddr*)&skaddr,sizeof(skaddr))==SOCKET_ERROR) { MessageBox("地址綁定錯誤"); return; } DWORD inBuffer=1; DWORD outBuffer[10]; DWORD reValue = 0; if (WSAIoctl(m_Sock,SIO_RCVALL,&inBuffer,sizeof(inBuffer),&outBuffer,sizeof(outBuffer),&reValue,NULL,NULL)==SOCKET_ERROR) { MessageBox("設置緩沖區錯誤."); closesocket(m_Sock); return; } else m_pThread = AfxBeginThread(ThreadFun,(void*)this);}void CSniffAppDlg::OnCancel(){ if (m_pThread) { //m_pThread->ExitInstance(); delete m_pThread; } closesocket( m_Sock) ; CDialog::OnCancel();}

該實例只是功能部分主要代碼,讀者可根據自身項目需求進行測試,加以改進與完善之后整合進自身項目中去。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美日韩精品视频免费看| 性色av一区二区三区免费| 91中文在线观看| 91精品在线看| 色播久久人人爽人人爽人人片视av| 欧美日韩国产一区二区| 久久久欧美一区二区| 亚洲欧美中文日韩在线v日本| 国产精品影院在线观看| 中文字幕一区二区精品| 国产精品久久久久久久9999| 欧美夫妻性生活视频| 欧美日韩亚洲91| 美日韩精品免费观看视频| 国产精品扒开腿做爽爽爽的视频| 欧美大全免费观看电视剧大泉洋| 日韩高清欧美高清| 欧美人交a欧美精品| 粉嫩av一区二区三区免费野| 国产成人精品一区二区三区| 国产精品成人一区| 亚洲美女性生活视频| 538国产精品视频一区二区| 欧美专区在线播放| 26uuu亚洲国产精品| 精品欧美激情精品一区| 国产精品入口免费视频一| 久久夜精品va视频免费观看| 亚洲激情成人网| 日韩一区二区久久久| 日韩av在线资源| 欧美高清一级大片| 精品视频一区在线视频| 亚洲国产又黄又爽女人高潮的| 亚洲第一av网站| 在线播放日韩专区| 亚洲免费中文字幕| 日韩精品福利网站| xvideos成人免费中文版| 成人做爰www免费看视频网站| 91精品国产综合久久香蕉最新版| 欧美激情精品久久久久久变态| 一本大道久久加勒比香蕉| 欧美成人一区二区三区电影| 色青青草原桃花久久综合| 日韩在线观看视频免费| 久久免费国产精品1| 大胆人体色综合| 亚洲成人黄色网| 久久国产精品久久精品| 国产精品午夜视频| 亚洲最大在线视频| 亚洲人成在线免费观看| 国产精品欧美在线| 国产精品v日韩精品| 亚洲人成亚洲人成在线观看| 91超碰caoporn97人人| 欧美贵妇videos办公室| 欧美亚洲另类激情另类| 欧美综合在线第二页| 国产福利精品视频| 正在播放欧美一区| 日本不卡视频在线播放| 欧美国产视频日韩| 亚洲精品网址在线观看| 国产免费一区二区三区香蕉精| 日本一区二区不卡| 91情侣偷在线精品国产| 一区二区三区在线播放欧美| 狠狠做深爱婷婷久久综合一区| 日韩中文字幕国产| 亚洲国产精品一区二区久| 91精品视频在线| 国产精品久久久av久久久| 精品国产精品自拍| 亚洲国产另类久久精品| 尤物精品国产第一福利三区| 亚洲字幕在线观看| 日韩中文在线中文网三级| 国产日韩欧美黄色| 在线观看不卡av| 欧美亚洲国产另类| 一区三区二区视频| 日韩av一区二区在线| 国产一区二区三区毛片| 国产精品久久色| 国产精品美女在线观看| 91国产在线精品| 亚洲专区中文字幕| 欧美国产精品日韩| 国产欧美日韩中文字幕在线| 国产丝袜视频一区| 亚洲女同性videos| 日韩美女主播视频| 国产日本欧美视频| 欧美丝袜美女中出在线| 久久人人爽人人爽爽久久| 日韩成人在线视频| 亚洲第一综合天堂另类专| 欧美激情免费视频| 久久久免费在线观看| 亚洲一区精品电影| 日韩中文字幕av| 久久国产精品久久久久| 日韩视频免费中文字幕| 91精品久久久久久久久久久| 26uuu另类亚洲欧美日本老年| 久久精品一区中文字幕| 国产成+人+综合+亚洲欧美丁香花| 日韩精品免费一线在线观看| 欧美激情区在线播放| 亚洲自拍小视频免费观看| 欧美大片第1页| 国产美女久久久| 亚洲美女视频网| 国内精品久久久久久久| 日韩亚洲欧美中文在线| 亚洲护士老师的毛茸茸最新章节| 97热精品视频官网| 日韩精品在线视频美女| 欧美午夜美女看片| 国模私拍视频一区| 亚洲福利视频二区| 国自在线精品视频| 久久视频中文字幕| 欧美精品久久久久久久免费观看| 国产精品精品久久久久久| 国产日韩欧美夫妻视频在线观看| www日韩欧美| 日韩免费看的电影电视剧大全| 亚洲国产欧美精品| 亚洲在线免费视频| 国产主播精品在线| 国产精品69精品一区二区三区| 亚洲天堂免费观看| 91久久国产婷婷一区二区| 日韩av一区二区在线观看| 久久国产精品久久久久久久久久| 亚洲精品永久免费精品| 91伊人影院在线播放| 亚洲电影成人av99爱色| 国产精品专区第二| 另类色图亚洲色图| 国自在线精品视频| 国产精品久在线观看| 国产精品十八以下禁看| 亚洲福利视频网站| 国产精品久久国产精品99gif| 少妇高潮久久久久久潘金莲| 国产精品成人国产乱一区| 国产在线视频一区| 欧美情侣性视频| 91精品91久久久久久| 91免费在线视频网站| 欧美亚洲另类激情另类| 亚洲一区中文字幕在线观看| 91高清视频免费观看| 热久久免费国产视频| 51ⅴ精品国产91久久久久久| 91av在线免费观看视频| 日本三级久久久| 亚洲国产日韩一区| 久久视频国产精品免费视频在线| 伊人亚洲福利一区二区三区|