⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tracer.h

📁 路由追踪的
💻 H
字号:
// Tracer.h: interface for the CTracer class.
//
//////////////////////////////////////////////////////////////////////
#include"winsock2.h"
#include"ws2tcpip.h"
#if !defined(AFX_TRACER_H__5182D394_8085_4459_B99E_93CC9B914BAB__INCLUDED_)
#define AFX_TRACER_H__5182D394_8085_4459_B99E_93CC9B914BAB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define DEF_PACKET_SIZE   32
#define MAX_PACKET        1024
#define MAX_NOTES         30
#define ICMP_MIN          8
#define ICMP_ECHOREPLY    0
#define ICMP_DESTUNREACH  3
#define ICMP_SRCQUENCH    4
#define ICMP_REDIRECT     5
#define ICMP_ECHO         8
#define ICMP_TIMEOUT      11
#define ICMP_PARMERR      12
struct ICMPHEADER
{
    BYTE   i_type;               // 类型
    BYTE   i_code;               // 代码
    USHORT i_cksum;              // 首部校验和
    USHORT i_id;                 // 标识
    USHORT i_seq;                // 序列号
    ULONG timestamp;             // 时间戳(选用)
};
struct IPHEADER
{	unsigned int       h_len:4;          // 首部长度
	unsigned int       version:4;         // 版本
    unsigned char      tos;             // 服务类型
    unsigned short     total_len;         // 报文总长度
    unsigned short     ident;            // 标识
    unsigned short     frag_and_flags;   // 偏移量
    unsigned char      ttl;             // 寿命
    unsigned char      proto;          // 协议
    unsigned short     checksum;       // 首部校验和
    unsigned int       sourceIP;       // 源站IP
    unsigned int       destIP;         // 目的站IP
};



class CTracer  
{
private:
	BOOL DecodeICMP(char* pBuffer,int bytes,int ttl);
	BOOL RecvData(char* icmpRecvBuf,int* presult);
	BOOL SendData(char* icmpData,int size);
	BOOL SetTTL(SOCKET hSocket,int ttl);
	void FillICMPData(char* icmpData,int size);
	BOOL FillAddress(char *addrDest);
	USHORT CheckSum(char* pBuffer,int size);
	CDialog* m_pWnd;              //指向主窗口的指针
	char* icmpData;                 //指向发送报文内存空间的指针
	char* icmpRcvBuf;              //指向报文接收缓冲空间的指针
	int m_nSeq;                    //报文序列号
	SOCKET m_hSocket;            //套接字句柄
	SOCKADDR_IN m_addrDest;     //目的主机地址
	SOCKADDR_IN m_addrFrom;     //存放路由地址
	

public:
	void Trace(char *destAddress);
	void SetWnd(CDialog *pWnd);
	CTracer();
	virtual ~CTracer();

};

#endif // !defined(AFX_TRACER_H__5182D394_8085_4459_B99E_93CC9B914BAB__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -