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