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

摘要:
1//所需的头文件2#include<Winsock2.h>3#include“iphlpapi.h”45#pragmacomment6#pragmacomment78//接口函数:判断IP地址是否可以ping 9//参数:IP地址或域名10BOOLICMPPing11{12 HANDLE iHwnd=IcmpCreateFile();13 char*SendData=“DataBuffer”;14 DWORD dwRet;15 LPVOID ReplyBuffer;16 ReplyBuffer=malloc;17 if((dwRet=IcmpRet SendEcho)(iHwnd,inet_addr(szIP),SendData,strlen(SendData),NULL,ReplyBuffer,18 sizeof(ICMP_ECHO_REPLY)+strlen0)20{21 IcmpCloseHandle;22 returntrue;//您可以ping 23}24 else25{26 IcmpCloseHand;27 returnfalse;//您不能ping 28}29}
以下是判断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

免责声明:文章转载自《C++ 判断IP是否可以ping通》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IIS虚拟目录与UNC路径权限初探css中所有的选择器(包括比较少见的选择器)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux下使用ffmpeg将amr转成mp3

系统环境: CentOS Linux release 8.2.2004 (Core) 1. 首先安装系统编译环境 yum install -y automake autoconf libtool gcc gcc-c++ 2. 编译所需源码包 #yasm:汇编器,新版本的ffmpeg增加了汇编代码 wget http://www.tortall.net/pr...

linux嵌入式qt的屏幕旋转与字体大小问题

【1、与qt程序显示文字大小有关的两项】 export QWS_DISPLAY=LinuxFB:mmWidth200:mmHeight100:0   //输出设备为Linux framebuffer,尺寸定义(尺寸定义与文字大小有直接关系) export QWS_SIZE=480x272   //屏幕大小 【2、屏幕旋转】 export QWS_DISPL...

dbus

dbus 概念 --翻遍了google和百度,就这个图对入门帮助最大,dbus的文档真难找 fcitx 概念 dbus-send 命令行 /inputmethod --对象路径 org.freedesktop.DBus.Properties --interface --dest=org.fcitx.Fcitx //名称 dbus-send -...

QT出现没有MySQL驱动,手动编译步骤

报错代码: "QSqlDatabase: QMYSQL driver not loaded ,QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7" 压根就没有QMYSQL,那么就需要我们手动编译,非常简单。 笔者的配置: QT版本 :5.13.0 MySQL数据库是使用的SQ...

基于vs2012的opencv开发环境搭建

  前些日子有个需求,大概描述,实时检测一副动态图每一帧画面上全部的圆形内容,并得到全部圆形的圆心相对坐标以及半径。当时的思路是用Matlab写一个相关图像处理的插件,然后给C#调用。当时没立马动手的原因是matlab更偏向计算以及理论验证,一些灰度、二值化的算法需要新写,在图像处理方面的封装易用性方面不够实用。于是乎就到了题目所说的opencv了,是一个...

几种cmd下的网络命令

网络命令可以分为三类:网络监测(如ping),网络连接(如telnet),网络配置(如netsh)。关于网络监测的命令:一。ping这个命令是常用的并且是效果最好的网络监测命令。例: C:\>ping 61.129.45.177 Pinging 61.129.45.177 with 32 bytes of data: (程序默认每个数据包的大小为32...