以下是判断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 }
发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行。