- 浏览: 353279 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (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 202Ref https://blog.csdn.net/weix ... -
[Python][网络爬虫]
2020-09-28 16:36 0#!/usr/bin/python #coding: U ... -
[轉]网络七层协议
2019-03-20 12:21 311应用层 与其它计算机 ... -
串口通讯相关
2018-11-02 13:44 357https://bbs.csdn.net/wap/topics ... -
C++/MFC 換皮膚
2018-10-20 11:05 419https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 515// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 525https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5108583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 536参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2021基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 8491 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1504OpenSSL命令---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 1831ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 809转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1808转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 996C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 923转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 931转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 752参考链接 http://blog.csdn.net/weiwe ...
相关推荐
Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压! 第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003...
cc实例124 可以选择播放曲目的CD播放器 cc实例125 MP3播放器 cc实例126 声音录制与播放 cc实例127 制作RealOne播放器 4.3 多媒体控制 cc实例128 部队早起军号程序 cc实例129 利用...
119 利用Image控件制作小动画 cc实例120 透明的Flash动画 cc实例121 播放GIF动画 cc实例122 播放AVI动画 cc实例123 播放VCD 4.2 制作与播放音频 cc实例124 可以选择播放曲目的CD播放器 cc实例125 MP3...
cc实例124 可以选择播放曲目的CD播放器 cc实例125 MP3播放器 cc实例126 声音录制与播放 cc实例127 制作RealOne播放器 4.3 多媒体控制 cc实例128 部队早起军号程序 cc实例129 利用...
" "专门针对Internet 通信域的Winsock地址结构sockaddr_in " "专用于存储IP地址的结构in_addr " " " "三、实验软硬件环境 " " " "运行Windows XP/ Windows Server 2003/Windows 7操作系统的PC一台 " "Visual C++6.0...
使用注意事项基于ansible环境,ansible安装略redis我没有采用免编译各节点需要提前准备gcc-c++...首先验证各个节点能ping通[root@localhost work_yml]# ansible all -m ping 192.168.0.177 | SUCCESS => { "ansible_fac
Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压! 第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003...
• 功能验证手段:在运行 Sniffer 的同时,执行标准的 Ping 、 Telnet 和浏览网页等操作,检查 Sniffier 能否返回预期的结果。 • 数据包保存:可以保存选中的包,保存文件要有可读性。 • 文件重组:一个文件在...
实例25 文本框输入数据的验证 第2篇 Visual C#中级编程实例 实例26 窗体背景颜色动态变化 实例27 C#属性及应用 实例28 C#属性Metadata的管理与应用 实例29 使用Context属性创建CallThreshold Service 实例30 ...
1.3 在哪里可以获取Red Hat Linux 3 1.4 系统需求 3 1.5 小结 4 第2章 Red Hat系统的安装 5 2.1 准备,认真准备 5 2.2 安装Red Hat Linux 6 2.2.1 创建引导盘和辅助盘 6 2.2.2 不利用引导软盘进行安装 7 2.2.3 虚拟...
实例20 获取车辆信息 实例21 简单角色类游戏的制作 实例22 旅馆住宿登记情况表制作 实例23 长命名空间的应用 实例24 文件特征计数 实例25 文本框输入数据的验证 <br>第2篇 Visual C#...
实例20 获取车辆信息 实例21 简单角色类游戏的制作 实例22 旅馆住宿登记情况表制作 实例23 长命名空间的应用 实例24 文件特征计数 实例25 文本框输入数据的验证 <br>第2篇 Visual C#...