社区
C++ Builder
帖子详情
如何利用cb发送icmp包,并得到返回的icmp包?急问,谢谢.
rebell
2002-08-18 02:19:48
请大家帮帮我,谢谢了.
...全文
63
5
打赏
收藏
如何利用cb发送icmp包,并得到返回的icmp包?急问,谢谢.
请大家帮帮我,谢谢了.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rebell
2002-11-28
打赏
举报
回复
加上了,怎么显示还是0,没有办法了!
rebell
2002-11-28
打赏
举报
回复
不好意思,打分打漏了,怎么加上?
rebell
2002-11-28
打赏
举报
回复
好厉害,还有几个地方不是很明白,不过谢谢了,我会好好利用的。
NowCan
2002-08-18
打赏
举报
回复
#include <windows.h>
#include "Ping.h"
/* */
TPing::TPing(void)
{
Icmpdll=LoadLibrary(TEXT("ICMP.DLL"));
IcmpCreateFile=(ICMPCREATEFILE) GetProcAddress(Icmpdll, "IcmpCreateFile");
IcmpCloseHandle=(ICMPCLOSEHANDLE) GetProcAddress(Icmpdll, "IcmpCloseHandle");
IcmpSendEcho=(ICMPSENDECHO) GetProcAddress(Icmpdll, "IcmpSendEcho");
}
/* */
TPing::~TPing(void)
{
FreeLibrary(Icmpdll);
}
/* */
DWORD TPing::Ping(char *IP, DWORD TimeOut)
{
unsigned long ulIP;
char reply[sizeof(icmp_echo_reply) + 8 + 512];
char Req[512];
HANDLE hIcmp;
icmp_echo_reply *iep= (icmp_echo_reply *) &reply;
hIcmp=IcmpCreateFile();
//MessageBox(NULL, TEXT("IcmpCreatFile"), NULL, MB_OK);
iep->RoundTripTime=0xffffffff;
ulIP=inet_addr(IP);
//MessageBox(NULL, TEXT("inet_addr"), NULL, MB_OK);
IcmpSendEcho(hIcmp, ulIP, Req, 64, NULL, reply, sizeof(icmp_echo_reply) + 8 + 512, TimeOut);
//MessageBox(NULL, TEXT("IcmpSendEcho"), NULL, MB_OK);
IcmpCloseHandle(hIcmp);
//MessageBox(NULL, TEXT("IcmpCloseHandle"), NULL, MB_OK);
return iep->RoundTripTime;
}
NowCan
2002-08-18
打赏
举报
回复
干什么,ping?
#ifndef _PING_H_
#define _PING_H_
#include <windows.h>
#include <ipexport.h>
typedef HANDLE (*ICMPCREATEFILE) (void);
typedef BOOL (*ICMPCLOSEHANDLE) (HANDLE);
typedef DWORD (*ICMPSENDECHO) (HANDLE, ULONG, LPVOID, WORD, LPVOID, LPVOID, DWORD, DWORD);
class TPing
{
/* */
private:
HINSTANCE Icmpdll;
ICMPCREATEFILE IcmpCreateFile;
ICMPCLOSEHANDLE IcmpCloseHandle;
ICMPSENDECHO IcmpSendEcho;
/* */
public:
TPing(void);
~TPing(void);
DWORD Ping(char *IP, DWORD TimeOut);
};
#endif
3.5
ICMP
不可达报文的处理
本文探讨了在TCP三次握手过程中,当遇到
ICMP
“目的不可达”报文时的情况。两种典型场景
包
括:client端
发送
SYN请求后未找到server端对应处理,以及client端在SYN|ACK响应后崩溃。Linux内核中的TCP在接收到
ICMP
错误报文后,会通过tcp_protocol数据结构及时调整TCP状态机,如设置为TCP_CLOSE并释放资源,确保连接资源的有效回收。
ping命令产生的
ICMP
数据
包
流向
本文详细解析了使用ping命令向google服务器
发送
请求的过程,
包
括网络层的
ICMP
报文构造、子网掩码判断、ARP请求与应答、路由查找等关键步骤。
DJ4-4 NAT、
ICMP
、IPv6
文章介绍了NAT的工作原理和限制,作为解决IP地址短缺的方法。接着讨论了
ICMP
协议,
包
括其在错误报告和网络探测中的作用,以及Traceroute命令的运作机制。最后,提到了IPv6的引入原因及其固定长度的首部和冒号十六进制表示法。
9、互联网控制消息协议(
ICMP
)与IPv4协议解析
本文围绕互联网控制消息协议(
ICMP
)与IPv4协议展开,介绍了
ICMP
v6消息
发送
示例、方法及速率限制,解析了相关方法内部逻辑,阐述了
ICMP
套接字使用。同时,对IPv4协议概述、头结构、任务及数据
包
处理流程进行说明,还提及二者在网络故障排查中的应用,助力理解网络通信原理。
C++ Builder
13,872
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章