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

📄 netstruct.h

📁 一个网络监视的程序
💻 H
字号:
#ifndef _MONITOR_PCAP_DEFINE_H_
#define _MONITOR_PCAP_DEFINE_H_

#define WM_DATA_TRANSLATE WM_USER+10

//定义ip报头
namespace PROTOCOL_DEFINE
{
	//下面的定义参见RFC 1700
#define IP		"0x0800"
#define ARP		"0x0806"
#define RARP	"0x8035"
	
	
#define ICMP	1		//控制信息协议
#define TCP		6		//传输控制协议
#define EGP		8		//外部网关协议
#define IGP		9		//内部网关协议
#define	UDP		17		//用户数据报协议
	struct ETHERNET_HEADER
	{
		byte des_mac[6];	//接收端的MAC地址
		byte src_mac[6];	//发送端的MAC地址
		byte type[2];		//类型字段
	};
	struct IP_HEADER
	{
		byte ver_len;		//版本4位,头长度4位,报头长度以32位为一个单位
		byte type;			//类型8位
		byte length[2];		//总长度,16位,指出报文的以字节为单位的总长度,报文长度不能超过65536个字接,否则认为报文遭到破坏
		byte id[2];			//报文标示,用于多于一个报文16位
		byte flag_offset[2];//标志,3位	数据块偏移13位
		byte time;			//生存时间,8位
		byte protocol;		//协议,8位
		byte crc_val[2];	//头校验和,16位
		byte src_addr[4];	//源地址,32位
		byte des_addr[4];	//目标地址,32位
		byte options[4];	//选项和填充,32位
	};
	struct TCP_HEADER
	{
		byte src_port[2];		//发送端端口号,16位
		byte des_port[2];		//接收端端口号,16位
		byte sequence_no[4];	//32位,标示消息端的数据位于全体数据块的某一字节的数字
		byte ack_no[4];			//32位,确认号,标示接收端对于发送端接收到数据块数值
		byte offset_reser_con[2];//数据偏移4位,预留6位,控制位6为
		byte window[2];			//窗口16位
		byte checksum[2];		//校验码,16位
		byte urgen_pointer[2];	//16位,紧急数据指针
		byte options[4];		//选祥和填充,32位
	};
	struct UDP_HEADER
	{
		byte src_port[2];	//发送端端口
		byte des_port[2];	//接收端端口
		byte length[2];		//用户数据报长度
		byte check_sum[2];	//校验码
	};
	struct ICMP_HEADER
	{
		byte type;			//类型字节(1字节)
		byte code;			//代码字节(1字节)
		byte check_sum[2];	//校验码(2字节)
	};
	struct ARP_PROTOCOL
	{
		byte hw_type[2];	//硬件类型。以态网表示为1
		byte protocol[2];	//网络层协议的类型,例如IP协议为800
		byte hw_len;		//查询物理地址的字节长度。以态网时为6
		byte protocol_len;	//查询上层协议地址的字节长度。IPv4时为4
		byte opcode[2];		//表示操作内容的数值。1为ARP请求,2为ARP响应,3为RARP请求,4为RARP响应
		byte src_mac[6];	//发送端MAC地址
		byte src_addr[4];	//发送端的IP地址
		byte des_mac[6];	//查询对象的MAC地址
		byte des_addr[4];	//查询对象的IP地址
	};
	int get_IP_HEADER_length(IP_HEADER * ip);
	void get_MAC_addr(unsigned char * p,char * buf,int bufsize);
	
}
#endif

⌨️ 快捷键说明

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