getlhs.c

来自「网络流量生成工具,开源软件,也可以作为网络流量检测软件使用」· C语言 代码 · 共 99 行

C
99
字号
/*  * $smu-mark$  * $name: getlhs.c$  * $author: Salvatore Sanfilippo <antirez@invece.org>$  * $copyright: Copyright (C) 1999 by Salvatore Sanfilippo$  * $license: This software is under GPL version 2 of license$  * $date: Fri Nov  5 11:55:47 MET 1999$  * $rev: 8$  */ #include <string.h>#include "hping2.h"#include "globals.h"#if (!defined OSTYPE_LINUX) || (defined FORCE_LIBPCAP)int get_linkhdr_size(char *ifname){	int dltype = pcap_datalink(pcapfp);	switch(dltype) {	case DLT_EN10MB:	case DLT_IEEE802:		linkhdr_size = 14;		break;	case DLT_SLIP:	case DLT_SLIP_BSDOS:		linkhdr_size = 16;		break;	case DLT_PPP:	case DLT_NULL:#ifdef DLT_PPP_SERIAL	case DLT_PPP_SERIAL:#endif#ifdef DLT_LOOP	case DLT_LOOP:#endif		linkhdr_size = 4;		break;	case DLT_PPP_BSDOS:		linkhdr_size = 24;		break;	case DLT_FDDI:		linkhdr_size = 13;		break;	case DLT_RAW:		linkhdr_size = 0;		break;	case DLT_ATM_RFC1483:#ifdef DLT_CIP	case DLT_CIP:#endif#ifdef DLT_ATM_CLIP	case DLT_ATM_CLIP:#endif		linkhdr_size = 8;		break;#ifdef DLT_C_HDLC	case DLT_C_HDLC:		linkhdr_size = 4;		break;#endif#ifdef DLT_LINUX_SSL	case DLT_LINUX_SLL:#endif#ifdef DLT_LANE8023	case DLT_LANE8023:#endif		linkhdr_size = 16;		break;	default:		return -1;		break;	}	return 0;}#else /* Linux... */int get_linkhdr_size(char *ifname){	if ( strstr(ifname, "ppp") ) { /* also works for ippp (ISDN) */		linkhdr_size = PPPHDR_SIZE_LINUX;		return 0;	} else if ( strstr(ifname, "eth") ) {		linkhdr_size = ETHHDR_SIZE;		return 0;	} else if (strstr(ifname, "ets")) {		linkhdr_size = 0;		return 0;	} else if ( strstr(ifname, "lo") ) {		linkhdr_size = LOHDR_SIZE;		return 0;	}	else		return -1;}#endif /* (!defined OSTYPE_LINUX) || (defined FORCE_LIBPCAP) */

⌨️ 快捷键说明

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