




已閱讀5頁,還剩2頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于ICMP的主機存活性探測原理與實現1. 工作原理 ICMP是“InternetControlMessageProtocol(Internet控制消息協議)的縮寫它是TCP/IP協議族的一個子協議,用于在IP主機路由器之間傳遞控制消息控制消息是指網絡通不通主機是否可達路由是否可用等網絡本身的消息這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用2.程序設計(1)設計要求 通過這次設計,要求了解TCP/IP的基本協議的工作原理和基本的網絡編程知識,利用單(多)線程技術、API函數等編寫服務和客戶端應用程序,利用MFC提供的類編寫較為復雜網絡應用程序。同時,在程序設計方法以及上機操作等基本技能和科學作風方面受到比較系統和嚴格的訓練。 (2) 主要代碼 /定義ICMP結構體。typedef struct icmp_hdr unsigned char icmp_type; / 消息類型 unsigned char icmp_code; / 代碼 unsigned short icmp_checksum; / 校驗和 / 下面是回顯頭 unsigned short icmp_id; / 用來惟一標識此請求的ID號,通常設置為進程ID unsigned short icmp_sequence; / 序列號 unsigned long icmp_timestamp; / 時間戳 ICMP_HDR, *PICMP_HDR;typedef struct _iphdr unsigned int h_len:4; /頭長度 unsigned int version:4;/IP版本 unsigned char tos; /服務類型 unsigned short total_len;/包的總長度 unsigned short ident; /包標識身份 unsigned short frag_and_flags;/標志 unsigned char ttl; /包生命周期 unsigned char proto; /協議類型 unsigned short checksum; /IP校驗 unsigned int sourceIP; /源IP unsigned int destIP; /目標IP IPHeader; /設置最長存活期 BOOLCICMPDlg:SetTTL(SOCKETs,intnValue)intret=setsockopt(s,IPPROTO_IP,IP_TTL,(char*)&nValue,sizeof(nValue);returnret!=SOCKET_ERROR;/設置超時時間BOOLCICMPDlg:SetTimeout(SOCKETs,intnTime,BOOLbRecv)intret=setsockopt(s,SOL_SOCKET,bRecv?SO_RCVTIMEO:SO_SNDTIMEO,(char*)&nTime,sizeof(nTime);returnret!=SOCKET_ERROR;/檢查校驗和USHORTCICMPDlg:checksum(USHORT*buff,intsize)unsignedlongcksum=0;while(size1)cksum+=*buff+;size-=sizeof(USHORT);/是奇數if(size)cksum+=*(UCHAR*)buff;/將32位的chsum高16位和低16位相加,然后取反cksum=(cksum16)+(cksum&0xffff);cksum+=(cksum16);return(USHORT)(cksum); UpdateData(true);intcount=m_list.GetItemCount();charszDestIp=10.0.0.2;/127.0.0.1WSADATAWSAData;if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0)MessageBox(WSAStartup初始化失敗。);return;/發送一個ICMP包,接受到返回的包之后開始解析。/創建原始套節字SOCKETsRaw=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);/設置接收超時SetTimeout(sRaw,1000,TRUE);intIpAddress;IpAddress=inet_addr(m_Address);/IpAddress=inet_addr(10.0.0.2);if(IpAddress=INADDR_NONE)MessageBox(IP地址錯誤!);hostent*pHostent=gethostbyname(m_Address);if(pHostent)IpAddress=(*(in_addr*)pHostent-h_addr).s_addr;/設置目的地址SOCKADDR_INdest;memset(&dest,0,sizeof(dest);dest.sin_family=AF_INET;dest.sin_port=htons(0);dest.sin_addr.S_un.S_addr=IpAddress;/創建ICMP封包charbuffsizeof(ICMP_HDR)+32;memset(buff,0,sizeof(buff);memset(&buffsizeof(ICMP_HDR),E,32);/USHORTnSeq=0;charrecvBuf1024;SOCKADDR_INfrom;intnLen=sizeof(from);intnRet;ICMP_HDR*pIcmp=(ICMP_HDR*)buff;pIcmp-icmp_type=8;/請求一個ICMP回顯pIcmp-icmp_code=0;pIcmp-icmp_id=(USHORT)GetCurrentProcessId();pIcmp-icmp_timestamp=GetTickCount();pIcmp-icmp_sequence=1;pIcmp-icmp_checksum=checksum(USHORT*)buff,sizeof(ICMP_HDR)+32);nRet=sendto(sRaw,buff,sizeof(ICMP_HDR)+32,0,(SOCKADDR*)&dest,sizeof(dest);if(nRet=SOCKET_ERROR)MessageBox(發送錯誤!);return;nRet=recvfrom(sRaw,recvBuf,1024,0,(sockaddr*)&from,&nLen);if(nRet=SOCKET_ERROR)if(WSAGetLastError()=WSAETIMEDOUT)m_list.InsertItem(count,m_Address);m_list.SetItemText(count,1,關閉);return;return;/下面開始解析接收到的ICMP封包if(nReticmp_type!=0)/回顯 m_list.InsertItem(count,m_Address);m_list.SetItemText(count,1,關閉);return;if(pRecvIcmp-icmp_id!=GetCurrentProcessId()m_list.InsertItem(count,m_Address);m_list.SetItemText(count,1,關閉);ret
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年運動醫學與運動訓練課程考試試題及答案
- 2025年心理學專業研究生入學考試試題及答案
- 2025年普外科醫師資格考試題及答案
- 2025年房地產經營管理理論與實務考試卷及答案
- 2025年法務會計師職業資格考試試題及答案
- 2025年電氣自動化工程師職業資格考試試題及答案
- 2025年中國冷庫建設行業市場全景分析及前景機遇研判報告
- 2024年度浙江省護師類之主管護師押題練習試卷B卷附答案
- 幼兒園消防逃生安全教育指南
- DB43-T 2856.3-2023 社會保障卡一卡通應用技術規范 第3部分:應用系統接入規范
- 天津市部分區2023-2024學年高一下學期期末考試語文試題(解析版)
- 貴州省黔西南州2023-2024學年英語八下期末教學質量檢測試題含答案
- 中醫頭部刮痧技術
- 江蘇省南通市海安市2023-2024學年七年級下學期期末數學試卷(含答案詳解)
- DL∕T 2602-2023 電力直流電源系統保護電器選用與試驗導則
- 河南省許昌市2023-2024學年三年級下學期期末質量檢測語文試卷
- 2024年全國“紅旗杯”班組長大賽(復賽)備考試題庫(簡答、案例分析題)
- 全國住房城鄉建設行業職業技能大賽各賽項技術文件 C1-建筑信息模型技術員LS技術文件
- 北京大學2024年強基計劃筆試數學試題(解析)
- 畜禽屠宰企業獸醫衛生檢驗人員考試試題
- 醫療廢物污水培訓課件
評論
0/150
提交評論