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

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

?? print-vtp.c

?? TCPDUMP的C語言源代碼,是在數據鏈路層的應用
?? C
字號:
/* * Copyright (c) 1998-2007 The TCPDUMP project * * 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, and (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. * 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. * * VLAN TRUNKING PROTOCOL (VTP) * * Reference documentation: *  http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml  *  http://www.cisco.com/warp/public/473/21.html  *  http://www.cisco.com/univercd/cc/td/doc/product/lan/trsrb/frames.htm * * Original code ode by Carles Kishimoto <carles.kishimoto@gmail.com> */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <tcpdump-stdinc.h>#include <stdio.h>#include <string.h>#include "interface.h"#include "addrtoname.h"#include "extract.h"		#include "nlpid.h"#define VTP_HEADER_LEN			36#define	VTP_DOMAIN_NAME_LEN		32#define	VTP_MD5_DIGEST_LEN		16#define VTP_UPDATE_TIMESTAMP_LEN	12#define VTP_VLAN_INFO_OFFSET		12#define VTP_SUMMARY_ADV			0x01#define VTP_SUBSET_ADV			0x02#define VTP_ADV_REQUEST			0x03#define VTP_JOIN_MESSAGE		0x04struct vtp_vlan_ {    u_int8_t  len;    u_int8_t  status;    u_int8_t  type;    u_int8_t  name_len;    u_int16_t vlanid;    u_int16_t mtu;    u_int32_t index;};static struct tok vtp_message_type_values[] = {    { VTP_SUMMARY_ADV, "Summary advertisement"},    { VTP_SUBSET_ADV, "Subset advertisement"},    { VTP_ADV_REQUEST, "Advertisement request"},    { VTP_JOIN_MESSAGE, "Join message"},    { 0, NULL }};static struct tok vtp_header_values[] = {    { 0x01, "Followers"}, /* On Summary advertisement, 3rd byte is Followers */    { 0x02, "Seq number"}, /* On Subset  advertisement, 3rd byte is Sequence number */    { 0x03, "Rsvd"}, /* On Adver. requests 3rd byte is Rsvd */    { 0x04, "Rsvd"}, /* On Adver. requests 3rd byte is Rsvd */    { 0, NULL }};static struct tok vtp_vlan_type_values[] = {    { 0x01, "Ethernet"},    { 0x02, "FDDI"},    { 0x03, "TrCRF"},    { 0x04, "FDDI-net"},    { 0x05, "TrBRF"},    { 0, NULL }};static struct tok vtp_vlan_status[] = {    { 0x00, "Operational"},    { 0x01, "Suspended"},    { 0, NULL }};#define VTP_VLAN_SOURCE_ROUTING_RING_NUMBER      0x01#define VTP_VLAN_SOURCE_ROUTING_BRIDGE_NUMBER    0x02#define VTP_VLAN_STP_TYPE                        0x03#define VTP_VLAN_PARENT_VLAN                     0x04#define VTP_VLAN_TRANS_BRIDGED_VLAN              0x05#define VTP_VLAN_PRUNING                         0x06#define VTP_VLAN_BRIDGE_TYPE                     0x07#define VTP_VLAN_ARP_HOP_COUNT                   0x08#define VTP_VLAN_STE_HOP_COUNT                   0x09#define VTP_VLAN_BACKUP_CRF_MODE                 0x0Astatic struct tok vtp_vlan_tlv_values[] = {    { VTP_VLAN_SOURCE_ROUTING_RING_NUMBER, "Source-Routing Ring Number TLV"},    { VTP_VLAN_SOURCE_ROUTING_BRIDGE_NUMBER, "Source-Routing Bridge Number TLV"},    { VTP_VLAN_STP_TYPE, "STP type TLV"},    { VTP_VLAN_PARENT_VLAN, "Parent VLAN TLV"},    { VTP_VLAN_TRANS_BRIDGED_VLAN, "Translationally bridged VLANs TLV"},    { VTP_VLAN_PRUNING, "Pruning TLV"},    { VTP_VLAN_BRIDGE_TYPE, "Bridge Type TLV"},    { VTP_VLAN_ARP_HOP_COUNT, "Max ARP Hop Count TLV"},    { VTP_VLAN_STE_HOP_COUNT, "Max STE Hop Count TLV"},    { VTP_VLAN_BACKUP_CRF_MODE, "Backup CRF Mode TLV"},    { 0,                                  NULL }};static struct tok vtp_stp_type_values[] = {    { 1, "SRT"},    { 2, "SRB"},    { 3, "Auto"},    { 0, NULL }};voidvtp_print (const u_char *pptr, u_int length){    int type, len, tlv_len, tlv_value;    const u_char *tptr;    const struct vtp_vlan_ *vtp_vlan;    if (length < VTP_HEADER_LEN)        goto trunc;    tptr = pptr;     if (!TTEST2(*tptr, VTP_HEADER_LEN))		goto trunc;    type = *(tptr+1);    printf("VTPv%u, Message %s (0x%02x), length %u",	   *tptr,  	   tok2str(vtp_message_type_values,"Unknown message type", type),	   *(tptr+1),	   length);    /* In non-verbose mode, just print version and message type */    if (vflag < 1) {        return;    }    /* verbose mode print all fields */    printf("\n\tDomain name: %s, %s: %u", 	   (tptr+4),	   tok2str(vtp_header_values,"Unknown",*(tptr+1)),	   *(tptr+2));    tptr += VTP_HEADER_LEN;    switch (type) {    case VTP_SUMMARY_ADV:	/*	 *  SUMMARY ADVERTISEMENT	 *	 *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |     Version   |     Code      |    Followers  |    MmgtD Len  |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                    Management Domain Name                     |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                    Configuration revision number              |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                  Updater Identity IP address                  |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                    Update Timestamp (12 bytes)                |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                        MD5 digest (16 bytes)                  |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  	 */	printf("\n\t  Config Rev %x, Updater %s",	       EXTRACT_32BITS(tptr),	       ipaddr_string(tptr+4));	tptr += 8;		printf(", Timestamp 0x%08x 0x%08x 0x%08x",	       EXTRACT_32BITS(tptr),	       EXTRACT_32BITS(tptr + 4),	       EXTRACT_32BITS(tptr + 8));	tptr += VTP_UPDATE_TIMESTAMP_LEN;	printf(", MD5 digest: %08x%08x%08x%08x",	       EXTRACT_32BITS(tptr),	       EXTRACT_32BITS(tptr + 4),	       EXTRACT_32BITS(tptr + 8),	       EXTRACT_32BITS(tptr + 12));	tptr += VTP_MD5_DIGEST_LEN;	break;    case VTP_SUBSET_ADV:	/*	 *  SUBSET ADVERTISEMENT	 *	 *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |     Version   |     Code      |   Seq number  |    MmgtD Len  |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                    Management Domain Name                     |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                    Configuration revision number              |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                         VLAN info field 1                     |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                         ................                      |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                         VLAN info field N                     |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *      	 */	printf(", Config Rev %x", EXTRACT_32BITS(tptr));	/*  	 *  VLAN INFORMATION	 *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  | V info len    |    Status     |  VLAN type    | VLAN name len |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |       ISL vlan id             |            MTU size           |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                     802.10 index (SAID)                       |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                         VLAN name                             |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *	 */	tptr += 4;	while (tptr < (pptr+length)) {	    len = *tptr;	    if (len == 0)		break;	    if (!TTEST2(*tptr, len))		goto trunc;	    vtp_vlan = (struct vtp_vlan_*)tptr;	    printf("\n\tVLAN info status %s, type %s, VLAN-id %u, MTU %u, SAID 0x%08x, Name %s",		   tok2str(vtp_vlan_status,"Unknown",vtp_vlan->status),		   tok2str(vtp_vlan_type_values,"Unknown",vtp_vlan->type),		   EXTRACT_16BITS(&vtp_vlan->vlanid),		   EXTRACT_16BITS(&vtp_vlan->mtu),		   EXTRACT_32BITS(&vtp_vlan->index),		   (tptr + VTP_VLAN_INFO_OFFSET));            /*             * Vlan names are aligned to 32-bit boundaries.             */            len  -= VTP_VLAN_INFO_OFFSET + 4*((vtp_vlan->name_len + 3)/4);            tptr += VTP_VLAN_INFO_OFFSET + 4*((vtp_vlan->name_len + 3)/4);            /* TLV information follows */            while (len > 0) {                /*                  * Cisco specs says 2 bytes for type + 2 bytes for length, take only 1                 * See: http://www.cisco.com/univercd/cc/td/doc/product/lan/trsrb/frames.htm                  */                type = *tptr;                tlv_len = *(tptr+1);                printf("\n\t\t%s (0x%04x) TLV",                       tok2str(vtp_vlan_tlv_values, "Unknown", type),                       type);                /*                 * infinite loop check                 */                if (type == 0 || tlv_len == 0) {                    return;                }                if (!TTEST2(*tptr, tlv_len*2 +2))                    goto trunc;                tlv_value = EXTRACT_16BITS(tptr+2);                switch (type) {                case VTP_VLAN_STE_HOP_COUNT:                    printf(", %u", tlv_value);                    break;                case VTP_VLAN_PRUNING:                    printf(", %s (%u)",                           tlv_value == 1 ? "Enabled" : "Disabled",                           tlv_value);                    break;                case VTP_VLAN_STP_TYPE:                    printf(", %s (%u)",                           tok2str(vtp_stp_type_values, "Unknown", tlv_value),                           tlv_value);                    break;                case VTP_VLAN_BRIDGE_TYPE:                    printf(", %s (%u)",                           tlv_value == 1 ? "SRB" : "SRT",                           tlv_value);                    break;                case VTP_VLAN_BACKUP_CRF_MODE:                    printf(", %s (%u)",                           tlv_value == 1 ? "Backup" : "Not backup",                           tlv_value);                    break;                    /*                     * FIXME those are the defined TLVs that lack a decoder                     * you are welcome to contribute code ;-)                     */                case VTP_VLAN_SOURCE_ROUTING_RING_NUMBER:                case VTP_VLAN_SOURCE_ROUTING_BRIDGE_NUMBER:                case VTP_VLAN_PARENT_VLAN:                case VTP_VLAN_TRANS_BRIDGED_VLAN:                case VTP_VLAN_ARP_HOP_COUNT:                default:		    print_unknown_data(tptr, "\n\t\t  ", 2 + tlv_len*2);                    break;                }                len -= 2 + tlv_len*2;                tptr += 2 + tlv_len*2;            }	}	break;    case VTP_ADV_REQUEST:	/*	 *  ADVERTISEMENT REQUEST	 *	 *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |     Version   |     Code      |   Reserved    |    MmgtD Len  |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                    Management Domain Name                     |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *  |                          Start value                          |	 *  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 *	 */	printf("\n\tStart value: %u", EXTRACT_32BITS(tptr));	break;    case VTP_JOIN_MESSAGE:	/* FIXME - Could not find message format */	break;    default:	break;    }    return; trunc:    printf("[|vtp]");}/* * Local Variables: * c-style: whitesmith * c-basic-offset: 4 * End: */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利国产成人精品照片| 久色婷婷小香蕉久久| 成人深夜福利app| 国产清纯在线一区二区www| 国产成人av电影在线| 国产精品久久久久久久蜜臀| 成人高清视频在线观看| 亚洲免费高清视频在线| 欧美另类z0zxhd电影| 日本成人在线电影网| 日韩免费看的电影| 国内精品在线播放| 中文字幕av一区二区三区| 91免费视频大全| 性欧美疯狂xxxxbbbb| 日韩欧美一级片| 成人免费视频播放| 亚洲电影中文字幕在线观看| 欧美在线综合视频| 麻豆精品视频在线观看视频| 久久网站热最新地址| 成人高清视频免费观看| 亚洲午夜私人影院| 精品国产免费人成电影在线观看四季 | 欧美人狂配大交3d怪物一区 | 激情五月播播久久久精品| 欧美激情一区二区三区不卡| 91成人国产精品| 久久99在线观看| 综合精品久久久| 91精品国产综合久久久蜜臀粉嫩 | 欧美日韩亚洲另类| 国产麻豆精品在线| 亚洲国产成人精品视频| 久久综合九色综合97婷婷女人 | 一二三区精品视频| 久久蜜桃av一区精品变态类天堂 | 国产精品99久久久| 亚洲不卡av一区二区三区| 久久久国产综合精品女国产盗摄| 色婷婷av一区二区三区大白胸| 免费av网站大全久久| 1区2区3区精品视频| 精品剧情v国产在线观看在线| 91免费看片在线观看| 国产河南妇女毛片精品久久久 | 国产成人综合亚洲网站| 日韩专区欧美专区| 国产精品久久午夜夜伦鲁鲁| 欧美成人性战久久| 欧美日韩一级视频| 91一区在线观看| 国产一区二区按摩在线观看| 亚洲1区2区3区4区| 亚洲免费三区一区二区| 国产欧美一区二区三区沐欲| 日韩亚洲欧美在线观看| 欧美又粗又大又爽| av在线播放不卡| 国v精品久久久网| 久久国产人妖系列| 日韩精品一级中文字幕精品视频免费观看| 国产精品日韩精品欧美在线| 久久午夜国产精品| 精品国产伦一区二区三区观看体验| 欧美性生活久久| 色综合久久久久网| eeuss影院一区二区三区| 国产一区二区在线观看免费| 欧美a级一区二区| 午夜精品成人在线视频| 一区二区三区久久| 亚洲欧美另类在线| 亚洲欧美日韩人成在线播放| 成人欧美一区二区三区视频网页| 中文字幕乱码亚洲精品一区| 国产婷婷色一区二区三区在线| 日韩一级精品视频在线观看| 这里是久久伊人| 91精品国产手机| 制服丝袜亚洲精品中文字幕| 欧美顶级少妇做爰| 91精品国产综合久久久蜜臀粉嫩 | 综合中文字幕亚洲| 亚洲品质自拍视频| 一区二区三区在线影院| 亚洲一区av在线| 亚洲一区二区在线免费看| 亚洲已满18点击进入久久| 天天色 色综合| 欧美aaaaaa午夜精品| 狠狠色狠狠色综合| 丁香亚洲综合激情啪啪综合| 成人美女在线视频| 在线观看91精品国产入口| 欧美色图免费看| 日韩区在线观看| 国产日韩视频一区二区三区| 中文字幕av一区 二区| 亚洲人成伊人成综合网小说| 亚洲成国产人片在线观看| 蜜桃视频在线观看一区| 国产91精品在线观看| 色综合天天综合色综合av| 欧美亚洲动漫精品| 精品精品欲导航| 国产精品热久久久久夜色精品三区| 亚洲天堂成人在线观看| 日韩在线播放一区二区| 经典三级视频一区| 91亚洲国产成人精品一区二区三| 欧美午夜精品电影| 久久综合五月天婷婷伊人| 日韩一区在线播放| 美女视频网站久久| www.日韩精品| 3751色影院一区二区三区| 日本一区二区免费在线观看视频 | 国产激情视频一区二区在线观看| 一本到不卡免费一区二区| 欧美狂野另类xxxxoooo| 国产日韩欧美精品综合| 天堂成人免费av电影一区| 国产成人aaa| 91精品一区二区三区久久久久久| 国产欧美日韩麻豆91| 天堂午夜影视日韩欧美一区二区| 国产精品99久| 欧美人妖巨大在线| 亚洲欧洲日产国产综合网| 麻豆成人久久精品二区三区红 | 午夜影院在线观看欧美| 成人综合婷婷国产精品久久| 7777精品伊人久久久大香线蕉经典版下载 | 欧美一区二区三区在线观看| 中文字幕欧美三区| 精品一区二区三区免费| 在线观看免费亚洲| 国产精品久久福利| 国产最新精品免费| 欧美一区二区三区白人| 亚洲综合在线第一页| 成人av动漫在线| 精品国产亚洲在线| 日韩高清电影一区| 欧美午夜一区二区| ...av二区三区久久精品| 国产一区二区三区日韩| 91精品中文字幕一区二区三区| 一区二区欧美视频| 91免费版在线看| 日本一区二区三区久久久久久久久不 | 精品一区二区在线视频| 欧美酷刑日本凌虐凌虐| 夜夜嗨av一区二区三区中文字幕 | 中文字幕中文在线不卡住| 国产在线精品免费av| 91精品国产综合久久香蕉麻豆| 亚洲午夜久久久久中文字幕久| av一二三不卡影片| 国产日产精品一区| 韩国一区二区视频| 2017欧美狠狠色| 国产在线国偷精品免费看| 日韩视频永久免费| 久久精品国产99国产| 日韩一区二区高清| 麻豆精品视频在线观看视频| 日韩一区二区在线观看视频播放| 日韩精品欧美成人高清一区二区| 欧美日本在线一区| 亚洲aⅴ怡春院| 777午夜精品免费视频| 青草av.久久免费一区| 7777精品久久久大香线蕉| 五月综合激情网| 91麻豆精品国产91久久久更新时间 | 国产精品亚洲а∨天堂免在线| 精品国产乱码久久久久久图片| 美女免费视频一区二区| 久久亚洲精品国产精品紫薇| 国产成人在线免费| 国产精品污污网站在线观看| 成人动漫中文字幕| 亚洲精品高清在线| 欧美精品在线视频| 精品一区二区三区久久| 欧美激情在线观看视频免费| 不卡的av网站| 亚洲国产精品久久久男人的天堂| 欧美日韩成人综合在线一区二区 | 一区二区三区中文字幕| 欧美喷潮久久久xxxxx| 日韩成人免费在线| 国产日韩欧美一区二区三区综合| 91视频国产资源| 日韩不卡一二三区| 国产欧美日韩视频一区二区| 色欧美乱欧美15图片| 麻豆91在线观看|