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

📄 if_packet.h

📁 linux得一些常用命令,以及linux环境下的c编程
💻 H
字号:
#ifndef __LINUX_IF_PACKET_H#define __LINUX_IF_PACKET_Hstruct sockaddr_pkt{	unsigned short spkt_family;	unsigned char spkt_device[14];	unsigned short spkt_protocol;};struct sockaddr_ll{	unsigned short	sll_family;	unsigned short	sll_protocol;	int		sll_ifindex;	unsigned short	sll_hatype;	unsigned char	sll_pkttype;	unsigned char	sll_halen;	unsigned char	sll_addr[8];};/* Packet types */#define PACKET_HOST		0		/* To us		*/#define PACKET_BROADCAST	1		/* To all		*/#define PACKET_MULTICAST	2		/* To group		*/#define PACKET_OTHERHOST	3		/* To someone else 	*/#define PACKET_OUTGOING		4		/* Outgoing of any type *//* These ones are invisible by user level */#define PACKET_LOOPBACK		5		/* MC/BRD frame looped back */#define PACKET_FASTROUTE	6		/* Fastrouted frame	*//* Packet socket options */#define PACKET_ADD_MEMBERSHIP		1#define PACKET_DROP_MEMBERSHIP		2#define PACKET_RECV_OUTPUT		3/* Value 4 is still used by obsolete turbo-packet. */#define PACKET_RX_RING			5#define PACKET_STATISTICS		6#define PACKET_COPY_THRESH		7struct tpacket_stats{	unsigned int	tp_packets;	unsigned int	tp_drops;};struct tpacket_hdr{	unsigned long	tp_status;#define TP_STATUS_KERNEL	0#define TP_STATUS_USER		1#define TP_STATUS_COPY		2#define TP_STATUS_LOSING	4#define TP_STATUS_CSUMNOTREADY	8	unsigned int	tp_len;	unsigned int	tp_snaplen;	unsigned short	tp_mac;	unsigned short	tp_net;	unsigned int	tp_sec;	unsigned int	tp_usec;};#define TPACKET_ALIGNMENT	16#define TPACKET_ALIGN(x)	(((x)+TPACKET_ALIGNMENT-1)&~(TPACKET_ALIGNMENT-1))#define TPACKET_HDRLEN		(TPACKET_ALIGN(sizeof(struct tpacket_hdr)) + sizeof(struct sockaddr_ll))/*   Frame structure:   - Start. Frame must be aligned to TPACKET_ALIGNMENT=16   - struct tpacket_hdr   - pad to TPACKET_ALIGNMENT=16   - struct sockaddr_ll   - Gap, chosen so that packet data (Start+tp_net) alignes to TPACKET_ALIGNMENT=16   - Start+tp_mac: [ Optional MAC header ]   - Start+tp_net: Packet data, aligned to TPACKET_ALIGNMENT=16.   - Pad to align to TPACKET_ALIGNMENT=16 */struct tpacket_req{	unsigned int	tp_block_size;	/* Minimal size of contiguous block */	unsigned int	tp_block_nr;	/* Number of blocks */	unsigned int	tp_frame_size;	/* Size of frame */	unsigned int	tp_frame_nr;	/* Total number of frames */};struct packet_mreq{	int		mr_ifindex;	unsigned short	mr_type;	unsigned short	mr_alen;	unsigned char	mr_address[8];};#define PACKET_MR_MULTICAST	0#define PACKET_MR_PROMISC	1#define PACKET_MR_ALLMULTI	2#endif

⌨️ 快捷键说明

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