- 浏览: 369583 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
https://www.cnblogs.com/guoyz1314/p/3527340.html
#include <Winsock2.h> #include "iphlpapi.h" #pragma comment(lib,"Iphlpapi.lib") #pragma comment(lib,"Ws2_32.lib") typedef HANDLE (WINAPI* ICMPCREATEFILE)(VOID); typedef BOOL (WINAPI* ICMPCLOSEHANDLE)(HANDLE); typedef DWORD (WINAPI* ICMPSENDECHO)(HANDLE, DWORD, LPVOID, WORD,PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD); //定义三个指针函数 ICMPCREATEFILE pIcmpCreateFile; ICMPCLOSEHANDLE pIcmpCloseHandle; ICMPSENDECHO pIcmpSendEcho; // 函数功能:初始化ICMP函数: BOOL InitIcmp() { HINSTANCE hIcmp = LoadLibrary("ICMP.DLL"); if(hIcmp==NULL) { return false; } pIcmpCreateFile = (ICMPCREATEFILE)GetProcAddress(hIcmp,"IcmpCreateFile"); pIcmpCloseHandle = (ICMPCLOSEHANDLE)GetProcAddress(hIcmp,"IcmpCloseHandle"); pIcmpSendEcho = (ICMPSENDECHO)GetProcAddress(hIcmp,"IcmpSendEcho"); if ((pIcmpCreateFile == NULL)||(pIcmpCloseHandle == NULL)||(pIcmpSendEcho == NULL)) return false; return true; } // 函数功能:判断是否能ping通IP // 函数参数:IP地址或域名 BOOL ICMPPing(char* host) { DWORD timeOut=1000; //设置超时 ULONG hAddr=inet_addr(host); //如果是IP地址就直接转换 if(hAddr==INADDR_NONE) { hostent* hp=gethostbyname(host); //如果是域名就用DNS解析出IP地址 if(hp) memcpy(&hAddr,hp->h_addr_list,hp->h_length); //IP地址 else { return false; } } HANDLE hIp=pIcmpCreateFile(); IP_OPTION_INFORMATION ipoi; memset(&ipoi,0,sizeof(IP_OPTION_INFORMATION)); ipoi.Ttl =128; //Time-To-Live unsigned char pSend[36]; //发送包 memset(pSend,'E',32); int repSize=sizeof(ICMP_ECHO_REPLY)+32; unsigned char pReply[100]; //接收包 ICMP_ECHO_REPLY* pEchoReply=(ICMP_ECHO_REPLY*)pReply; DWORD nPackets=pIcmpSendEcho(hIp,hAddr,pSend,32,&ipoi,pReply,repSize,timeOut); //发送ICMP数据报文 if(pEchoReply->Status!=0) //超时,可能是主机禁用了ICMP 或者目标主机不存在 { pIcmpCloseHandle(hIp); return false; } pIcmpCloseHandle(hIp); return true; } int main() { InitIcmp(); ICMPPing("192.168.0.1"); return 0; }
发表评论
-
FreeRTOS
2022-03-05 16:31 247Ref https://blog.csdn.net/weix ... -
[Python][网络爬虫]
2020-09-28 16:36 0#!/usr/bin/python #coding: U ... -
[轉]网络七层协议
2019-03-20 12:21 343应用层 与其它计算机 ... -
串口通讯相关
2018-11-02 13:44 410https://bbs.csdn.net/wap/topics ... -
C++/MFC 換皮膚
2018-10-20 11:05 476https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 573// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 578https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5728583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 599参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2153基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9051 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1581OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1879ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 869转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1906转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1085C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 968转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 990转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 809参考链接 http://blog.csdn.net/weiwe ...
相关推荐
首先,让我们看一段简单的C++代码,它使用了`system`函数和`ping`命令来检测单个IP地址是否可以ping通。代码的核心在于`getCmdResult`函数,该函数接收一个命令字符串,通过`popen`和`pclose`调用来执行命令并获取其...
在Windows操作系统中,`ping`命令是一个非常基础且重要的网络诊断工具,用于检查网络连接是否通畅,通过发送ICMP(Internet Control Message Protocol)回显请求数据包到目标主机并接收回应来验证网络可达性。...
在编写一个用C++编写的Ping程序时,我们需要涉及到多个编程和网络通信的知识点,主要包括Winsock编程模型、ICMP协议、原始套接字(Raw Sockets)的使用,以及网络编程的一些基本概念。 首先,Winsock(Windows ...
Ping测试不仅可以用来验证两台设备之间的网络连通性,还可以测量数据包的往返时间(RTT,Round-Trip Time),从而评估网络延迟。这对于网络故障排查、性能优化、远程服务访问、以及分布式系统中的节点间通信质量监控...
在本文中,我们将深入探讨如何使用C++编程语言在Windows环境下实现一个基本的ping命令功能。这个过程涉及网络编程、套接字编程以及系统调用等核心概念。首先,我们需要理解ping命令的基本工作原理,它是通过发送ICMP...
"ping命令在windows下的c++实现" 这个标题表明我们要讨论的是如何使用C++编程语言在Windows操作系统环境下实现一个类似于系统自带的`ping`命令的程序。`ping`命令通常用于测试网络连接的可达性和速度,通过发送ICMP...
标题中的“ping命令的C++/C程序实现”是指利用C++或C语言编写一个功能类似于操作系统内置的ping命令的程序。ping命令是网络诊断工具,用于检查网络连接的连通性,通过发送ICMP(Internet Control Message Protocol)...
在C++中实现`ping`功能,我们需要使用套接字编程,尤其是RAW Socket,因为它允许我们直接操作IP和ICMP数据包。以下是一些关键步骤: 1. **创建RAW Socket**:使用`socket()`函数创建一个原始套接字,指定协议族为`...
这个程序是在Visual Studio 2010集成开发环境中编写的,使用者可以方便地加载并运行它,以了解或学习如何在C++中实现网络通信中的“ping”操作。在C++中实现ping功能可以帮助开发者理解网络I/O、套接字编程以及...
在项目实施过程中,特别是在网络部署或服务器集群的配置阶段,常常需要验证新IP地址是否可以正常通信。传统的ping命令只能针对单个IP地址进行测试,而群ping工具则大大提高了效率,一次性可以处理多个IP地址,节省了...
- **诊断网络问题**:当无法访问特定网站或服务时,可以先尝试Ping该服务器,如果无法Ping通,可能是网络连接问题,或者目标服务器关闭了ICMP回应。 - **测量网络延迟**:通过观察返回的时间戳,可以了解数据包从...
在计算机网络中,"ping"命令是一个基本的通信协议测试工具,通过发送Internet控制消息协议(ICMP)回显请求报文来验证两台设备之间的网络连接是否通畅。这个测试程序对ping命令进行了封装,提供了更方便、定制化的使用...
Ping是一个网络诊断工具,用于测试两台计算机之间的网络连接性,通过发送Internet控制消息协议(ICMP)回显请求来验证目标主机是否可达。 描述中提到“win7不可运行”,意味着这个特定的MFC ping程序可能在Windows ...
例如,当你在命令行输入`ping`命令时,计算机就会发送ICMP回显请求到目标主机,然后目标主机回应一个回显应答,这样就可以检查网络连接是否正常。在源代码中,你可能会看到如何构造ICMP报文、设置报文头的字段、处理...
"ping"命令是网络诊断工具中的基础之一,用于测试网络连通性,验证两台设备之间的网络通信。在这个“ping课程设计”项目中,我们利用Microsoft Foundation Classes (MFC)库构建了一个图形用户界面(GUI),使用户...
通过发送Internet控制消息协议(ICMP)回显请求数据包到目标主机并接收回显应答,ping工具可以检查两台计算机之间的网络连接是否通畅,以及大致了解网络延迟情况。 描述中提到,这个ping程序是“简单的”,意味着它...
初始化过程包括创建文件夹、复制配置文件、修改配置文件以适应具体需求,设置绘图支持中文显示,验证权限,并将烟雾ping配置为自启动服务。同时,可能需要调整Apache配置文件,以便正确地服务烟雾ping的Web页面。 *...
标题中的“ping探测目标主机是否存活”涉及到网络通信的基本概念,即使用ping命令来检查网络上的另一台设备是否可以响应。Ping是Internet控制消息协议(ICMP)的一部分,用于网络诊断。通过发送ICMP回显请求数据包到...
MFC是C++的一个类库,用于开发Windows应用程序,它封装了许多Windows API,使得开发者可以更容易地利用多线程特性。通过MFC,程序员可以创建线程对象,管理线程的生命周期,并在多个线程之间同步数据,避免竞态条件...
描述中提到,“icmp协议的ping程序设计,基于win32平台利用vc++6.0编写,具有一定的实用性”,意味着这个程序可以用来验证两台计算机之间的网络连通性,检查网络延迟,以及检测可能存在的网络问题。VC++6.0是...