亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? print-ether.c

?? TCPDUMP的C語言源代碼,是在數(shù)據(jù)鏈路層的應用
?? C
字號:
/* * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that: (1) source code distributions * retain the above copyright notice and this paragraph in its entirety, (2) * distributions including binary code include the above copyright notice and * this paragraph in its entirety in the documentation or other materials * provided with the distribution, and (3) all advertising materials mentioning * features or use of this software display the following acknowledgement: * ``This product includes software developed by the University of California, * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of * the University nor the names of its contributors may be used to endorse * or promote products derived from this software without specific prior * written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */#ifndef lintstatic const char rcsid[] _U_ =    "@(#) $Header: /tcpdump/master/tcpdump/print-ether.c,v 1.105.2.1 2008-02-06 10:49:22 guy Exp $ (LBL)";#endif#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <tcpdump-stdinc.h>#include <stdio.h>#include <pcap.h>#include "interface.h"#include "addrtoname.h"#include "ethertype.h"#include "ether.h"const struct tok ethertype_values[] = {     { ETHERTYPE_IP,		"IPv4" },    { ETHERTYPE_MPLS,		"MPLS unicast" },    { ETHERTYPE_MPLS_MULTI,	"MPLS multicast" },    { ETHERTYPE_IPV6,		"IPv6" },    { ETHERTYPE_8021Q,		"802.1Q" },    { ETHERTYPE_VMAN,		"VMAN" },    { ETHERTYPE_PUP,            "PUP" },    { ETHERTYPE_ARP,            "ARP"},    { ETHERTYPE_REVARP,         "Reverse ARP"},    { ETHERTYPE_NS,             "NS" },    { ETHERTYPE_SPRITE,         "Sprite" },    { ETHERTYPE_TRAIL,          "Trail" },    { ETHERTYPE_MOPDL,          "MOP DL" },    { ETHERTYPE_MOPRC,          "MOP RC" },    { ETHERTYPE_DN,             "DN" },    { ETHERTYPE_LAT,            "LAT" },    { ETHERTYPE_SCA,            "SCA" },    { ETHERTYPE_LANBRIDGE,      "Lanbridge" },    { ETHERTYPE_DECDNS,         "DEC DNS" },    { ETHERTYPE_DECDTS,         "DEC DTS" },    { ETHERTYPE_VEXP,           "VEXP" },    { ETHERTYPE_VPROD,          "VPROD" },    { ETHERTYPE_ATALK,          "Appletalk" },    { ETHERTYPE_AARP,           "Appletalk ARP" },    { ETHERTYPE_IPX,            "IPX" },    { ETHERTYPE_PPP,            "PPP" },    { ETHERTYPE_MPCP,           "MPCP" },    { ETHERTYPE_SLOW,           "Slow Protocols" },    { ETHERTYPE_PPPOED,         "PPPoE D" },    { ETHERTYPE_PPPOES,         "PPPoE S" },    { ETHERTYPE_EAPOL,          "EAPOL" },    { ETHERTYPE_RRCP,           "RRCP" },    { ETHERTYPE_JUMBO,          "Jumbo" },    { ETHERTYPE_LOOPBACK,       "Loopback" },    { ETHERTYPE_ISO,            "OSI" },    { ETHERTYPE_GRE_ISO,        "GRE-OSI" },    { ETHERTYPE_CFM_OLD,        "CFM (old)" },    { ETHERTYPE_CFM,            "CFM" },    { ETHERTYPE_LLDP,           "LLDP" },    { 0, NULL}};static inline voidether_hdr_print(register const u_char *bp, u_int length){	register const struct ether_header *ep;	ep = (const struct ether_header *)bp;	(void)printf("%s > %s",		     etheraddr_string(ESRC(ep)),		     etheraddr_string(EDST(ep)));	if (!qflag) {	        if (ntohs(ep->ether_type) <= ETHERMTU)		          (void)printf(", 802.3");                else 		          (void)printf(", ethertype %s (0x%04x)",				       tok2str(ethertype_values,"Unknown", ntohs(ep->ether_type)),                                       ntohs(ep->ether_type));	              } else {                if (ntohs(ep->ether_type) <= ETHERMTU)                          (void)printf(", 802.3");                else                           (void)printf(", %s", tok2str(ethertype_values,"Unknown Ethertype (0x%04x)", ntohs(ep->ether_type)));          }	(void)printf(", length %u: ", length);}voidether_print(const u_char *p, u_int length, u_int caplen){	struct ether_header *ep;	u_short ether_type;	u_short extracted_ether_type;	if (caplen < ETHER_HDRLEN) {		printf("[|ether]");		return;	}	if (eflag)		ether_hdr_print(p, length);	length -= ETHER_HDRLEN;	caplen -= ETHER_HDRLEN;	ep = (struct ether_header *)p;	p += ETHER_HDRLEN;	ether_type = ntohs(ep->ether_type);	/*	 * Is it (gag) an 802.3 encapsulation?	 */	if (ether_type <= ETHERMTU) {		/* Try to print the LLC-layer header & higher layers */		if (llc_print(p, length, caplen, ESRC(ep), EDST(ep),		    &extracted_ether_type) == 0) {			/* ether_type not known, print raw packet */			if (!eflag)				ether_hdr_print((u_char *)ep, length + ETHER_HDRLEN);			if (!suppress_default_print)				default_print(p, caplen);		}	} else if (ether_encap_print(ether_type, p, length, caplen,	    &extracted_ether_type) == 0) {		/* ether_type not known, print raw packet */		if (!eflag)			ether_hdr_print((u_char *)ep, length + ETHER_HDRLEN);		if (!suppress_default_print)			default_print(p, caplen);	} }/* * This is the top level routine of the printer.  'p' points * to the ether header of the packet, 'h->ts' is the timestamp, * 'h->len' is the length of the packet off the wire, and 'h->caplen' * is the number of bytes actually captured. */u_intether_if_print(const struct pcap_pkthdr *h, const u_char *p){	ether_print(p, h->len, h->caplen);	return (ETHER_HDRLEN);}/* * Prints the packet encapsulated in an Ethernet data segment * (or an equivalent encapsulation), given the Ethernet type code. * * Returns non-zero if it can do so, zero if the ethertype is unknown. * * The Ethernet type code is passed through a pointer; if it was * ETHERTYPE_8021Q, it gets updated to be the Ethernet type of * the 802.1Q payload, for the benefit of lower layers that might * want to know what it is. */intether_encap_print(u_short ether_type, const u_char *p,    u_int length, u_int caplen, u_short *extracted_ether_type){ recurse:	*extracted_ether_type = ether_type;	switch (ether_type) {	case ETHERTYPE_IP:	        ip_print(gndo, p, length);		return (1);#ifdef INET6	case ETHERTYPE_IPV6:		ip6_print(p, length);		return (1);#endif /*INET6*/	case ETHERTYPE_ARP:	case ETHERTYPE_REVARP:  	        arp_print(gndo, p, length, caplen);		return (1);	case ETHERTYPE_DN:		decnet_print(p, length, caplen);		return (1);	case ETHERTYPE_ATALK:		if (vflag)			fputs("et1 ", stdout);		atalk_print(p, length);		return (1);	case ETHERTYPE_AARP:		aarp_print(p, length);		return (1);	case ETHERTYPE_IPX:		printf("(NOV-ETHII) ");		ipx_print(p, length);		return (1);	case ETHERTYPE_8021Q:	        if (eflag)		    printf("vlan %u, p %u%s, ",			   ntohs(*(u_int16_t *)p) & 0xfff,			   ntohs(*(u_int16_t *)p) >> 13,			   (ntohs(*(u_int16_t *)p) & 0x1000) ? ", CFI" : "");		ether_type = ntohs(*(u_int16_t *)(p + 2));		p += 4;		length -= 4;		caplen -= 4;		if (ether_type > ETHERMTU) {		        if (eflag)			        printf("ethertype %s, ",				       tok2str(ethertype_values,"0x%04x", ether_type));			goto recurse;		}		*extracted_ether_type = 0;		if (llc_print(p, length, caplen, p - 18, p - 12,		    extracted_ether_type) == 0) {                        ether_hdr_print(p - 18, length + 4);                        if (!suppress_default_print) {                                default_print(p - 18, caplen + 4);                        }		}		return (1);        case ETHERTYPE_JUMBO:                ether_type = ntohs(*(u_int16_t *)(p));                p += 2;                length -= 2;                      caplen -= 2;                if (ether_type > ETHERMTU) {                    if (eflag)                        printf("ethertype %s, ",                               tok2str(ethertype_values,"0x%04x", ether_type));                    goto recurse;                }                *extracted_ether_type = 0;                if (llc_print(p, length, caplen, p - 16, p - 10,                              extracted_ether_type) == 0) {                    ether_hdr_print(p - 16, length + 2);                    if (!suppress_default_print) {                            default_print(p - 16, caplen + 2);                    }                }                return (1);        case ETHERTYPE_ISO:                isoclns_print(p+1, length-1, length-1);                return(1);	case ETHERTYPE_PPPOED:	case ETHERTYPE_PPPOES:		pppoe_print(p, length);		return (1);	case ETHERTYPE_EAPOL:	        eap_print(gndo, p, length);		return (1);	case ETHERTYPE_RRCP:	        rrcp_print(gndo, p - 14 , length + 14);		return (1);	case ETHERTYPE_PPP:		if (length) {			printf(": ");			ppp_print(p, length);		}		return (1);	case ETHERTYPE_MPCP:	        mpcp_print(p, length);		return (1);	case ETHERTYPE_SLOW:	        slow_print(p, length);		return (1);	case ETHERTYPE_CFM:	case ETHERTYPE_CFM_OLD:	        cfm_print(p, length);		return (1);	case ETHERTYPE_LLDP:	        lldp_print(p, length);		return (1);        case ETHERTYPE_LOOPBACK:                return (1);	case ETHERTYPE_MPLS:	case ETHERTYPE_MPLS_MULTI:		mpls_print(p, length);		return (1);	case ETHERTYPE_LAT:	case ETHERTYPE_SCA:	case ETHERTYPE_MOPRC:	case ETHERTYPE_MOPDL:		/* default_print for now */	default:		return (0);	}}/* * Local Variables: * c-style: whitesmith * c-basic-offset: 8 * End: */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜国产精品影院在线观看| 99久久国产免费看| www.欧美日韩| 欧美成人激情免费网| 亚洲色图19p| 日本v片在线高清不卡在线观看| 成人黄色片在线观看| 日韩欧美中文字幕一区| 亚洲一区二区在线播放相泽| 国产成人午夜视频| 日韩视频一区二区三区在线播放| 一区二区三区在线视频免费| 国产一区欧美日韩| 精品少妇一区二区三区| 青青草精品视频| 欧美日韩一区二区三区不卡| 亚洲欧洲在线观看av| 成人一区在线观看| 国产欧美一区二区精品久导航 | 在线一区二区三区做爰视频网站| 久久综合九色综合欧美亚洲| 蜜桃视频第一区免费观看| 欧美精品自拍偷拍动漫精品| 一区二区三区色| 一本到不卡免费一区二区| 亚洲色图清纯唯美| 91丨porny丨国产入口| 国产精品卡一卡二| a4yy欧美一区二区三区| 中文字幕亚洲不卡| 99r国产精品| 亚洲欧美日韩国产中文在线| 99精品视频在线播放观看| 亚洲天堂成人在线观看| 色婷婷国产精品| 亚洲图片自拍偷拍| 欧美年轻男男videosbes| 亚洲精品国产无套在线观| 色哟哟日韩精品| 亚洲品质自拍视频| 欧美性受xxxx黑人xyx性爽| 亚洲国产精品视频| 日韩亚洲欧美成人一区| 精品亚洲欧美一区| 欧美激情一区二区三区在线| 成人高清免费观看| 亚洲午夜在线电影| 91精品国产免费| 国产一区二区美女| 中文字幕av一区二区三区| 色综合亚洲欧洲| 日韩电影在线看| 久久久噜噜噜久久中文字幕色伊伊| 精品一区二区三区视频在线观看 | 欧美福利一区二区| 麻豆精品一区二区三区| 日本一区二区三区电影| 在线观看欧美精品| 国产成人在线视频网址| 国产精品国产三级国产aⅴ中文| 色综合久久中文综合久久97| 三级精品在线观看| 欧美激情一二三区| 欧美日韩免费在线视频| 国产精品白丝jk黑袜喷水| 亚洲欧美视频在线观看视频| 欧美一区二区日韩| www.欧美色图| 紧缚奴在线一区二区三区| 成人欧美一区二区三区视频网页| 欧美视频自拍偷拍| 成人激情免费网站| 日本欧美一区二区三区乱码 | 亚洲国产精品一区二区久久 | 91麻豆精品视频| 蜜臀av性久久久久蜜臀av麻豆| 国产精品网站在线| 日韩精品中文字幕在线不卡尤物| 成人福利视频网站| 九色综合国产一区二区三区| 一区二区三区在线观看网站| 久久免费视频一区| 日韩欧美中文字幕制服| 欧美综合色免费| 丰满少妇在线播放bd日韩电影| 亚洲超碰精品一区二区| 亚洲色图都市小说| 国产女主播在线一区二区| 日韩欧美中文一区二区| 欧美午夜理伦三级在线观看| 粉嫩在线一区二区三区视频| 亚洲成人av电影| 免费的国产精品| 亚洲图片欧美色图| 亚洲免费观看高清完整版在线| 久久久久久久免费视频了| 4438x成人网最大色成网站| 色老综合老女人久久久| 99精品国产视频| 成人午夜视频网站| 成人黄色在线视频| 国产mv日韩mv欧美| 国产999精品久久久久久| 久久精品国产澳门| 久久国产免费看| 麻豆高清免费国产一区| 日韩国产在线观看| 美女www一区二区| 美女视频黄 久久| 麻豆精品一二三| 久99久精品视频免费观看| 捆绑变态av一区二区三区| 日韩va欧美va亚洲va久久| 日韩精品一区第一页| 五月天亚洲精品| 免费精品视频最新在线| 蜜臀久久久久久久| 久久精品国产77777蜜臀| 狠狠v欧美v日韩v亚洲ⅴ| 国模一区二区三区白浆| 国产精品综合网| 成人av在线资源网站| 99久久久精品| 欧美色涩在线第一页| 欧美日韩国产影片| 欧美精品v日韩精品v韩国精品v| 欧美日韩一区二区三区不卡| 91精品国产高清一区二区三区| 日韩午夜在线观看| 国产日韩欧美电影| 亚洲日本丝袜连裤袜办公室| 午夜视频一区二区| 麻豆久久久久久| 成人国产精品免费网站| 日本高清不卡在线观看| 欧美日韩成人激情| 精品三级av在线| 国产精品久久久久久久久免费丝袜| 中文字幕免费不卡| 亚洲国产精品欧美一二99| 麻豆精品久久精品色综合| 国产91丝袜在线播放九色| 91免费国产在线观看| 制服.丝袜.亚洲.另类.中文| 久久久久久久网| 尤物在线观看一区| 国产在线精品免费| 91成人国产精品| 久久婷婷色综合| 一区二区三区美女视频| 老司机精品视频一区二区三区| 成人一区二区在线观看| 欧美美女一区二区在线观看| 久久青草国产手机看片福利盒子| 亚洲日本在线天堂| 国产一区二区三区久久悠悠色av| 色婷婷av久久久久久久| 精品国产乱码久久久久久夜甘婷婷| 中文字幕中文在线不卡住| 蜜桃久久精品一区二区| 91黄色免费观看| 国产女人18水真多18精品一级做| 亚洲一区二区在线观看视频| 国产精品亚洲午夜一区二区三区| 在线观看视频一区二区欧美日韩| 国产日韩欧美综合在线| 免费久久99精品国产| 在线观看免费视频综合| 国产精品久久久久久久午夜片| 免费在线成人网| 欧美日韩高清一区二区三区| 一色桃子久久精品亚洲| 国产在线麻豆精品观看| 欧美男女性生活在线直播观看| 亚洲三级小视频| 国产91丝袜在线播放| 久久综合一区二区| 三级成人在线视频| 欧美日韩精品是欧美日韩精品| 国产精品高潮呻吟久久| 国产精品资源站在线| 日韩免费观看高清完整版| 亚洲国产成人精品视频| 91色视频在线| 亚洲日本在线看| 色综合久久久久久久久久久| 日本一区二区三级电影在线观看| 日本不卡中文字幕| 欧美高清dvd| 日韩成人精品在线| 欧美一区二区福利视频| 日韩不卡免费视频| 日韩一级黄色片| 久久电影国产免费久久电影 | 国产肉丝袜一区二区| 国产高清精品在线| 国产亚洲精品超碰| 成人动漫精品一区二区| 亚洲视频香蕉人妖| 欧美四级电影在线观看|