C++ 判斷IP是否可以ping通


以下是判斷IP是可以可以ping通的接口及依賴的頭文件和庫。
 1  // 需要的頭文件
 2  #include <Winsock2.h>
 3  #include "iphlpapi.h" 
 4   
 5  #pragma comment(lib,"Iphlpapi.lib")
 6  #pragma comment(lib,"Ws2_32.lib")
 7 
 8 // 接口功能:判斷IP地址是否能ping通
 9 // 參數:IP地址或域名
10 BOOL ICMPPing(char* szIP) 
11 {   
12     HANDLE  iHwnd = IcmpCreateFile();
13     char*  SendData = "Data Buffer";
14     DWORD  dwRet;
15     LPVOID  ReplyBuffer;
16     ReplyBuffer = (VOID*)malloc(sizeof(ICMP_ECHO_REPLY) + strlen(SendData));
17     if((dwRet = IcmpSendEcho(iHwnd, inet_addr(szIP), SendData, strlen(SendData), NULL, ReplyBuffer,
18       sizeof(ICMP_ECHO_REPLY) + strlen(SendData) + sizeof(ICMP_ECHO_REPLY),1000))
19       != 0)
20     {
21       IcmpCloseHandle(iHwnd);
22       return true;    //可以ping通
23     }
24    else
25     {
26      IcmpCloseHandle(iHwnd);
27      return false;    //不可以ping通
28     }
29


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM