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
发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行。
原文地址:https://www.cnblogs.com/lyx5990/p/12095487.html