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

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

?? print-atalk.c

?? TCPDUMP的C語言源代碼,是在數據鏈路層的應用
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 *	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. * * Format and print AppleTalk packets. */#ifndef lintstatic const char rcsid[] _U_ =    "@(#) $Header: /tcpdump/master/tcpdump/print-atalk.c,v 1.81 2004-05-01 09:41:50 hannes Exp $ (LBL)";#endif#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <tcpdump-stdinc.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pcap.h>#include "interface.h"#include "addrtoname.h"#include "ethertype.h"#include "extract.h"			/* must come after interface.h */#include "appletalk.h"static struct tok type2str[] = {	{ ddpRTMP,		"rtmp" },	{ ddpRTMPrequest,	"rtmpReq" },	{ ddpECHO,		"echo" },	{ ddpIP,		"IP" },	{ ddpARP,		"ARP" },	{ ddpKLAP,		"KLAP" },	{ 0,			NULL }};struct aarp {	u_int16_t	htype, ptype;	u_int8_t	halen, palen;	u_int16_t	op;	u_int8_t	hsaddr[6];	u_int8_t	psaddr[4];	u_int8_t	hdaddr[6];	u_int8_t	pdaddr[4];};static char tstr[] = "[|atalk]";static void atp_print(const struct atATP *, u_int);static void atp_bitmap_print(u_char);static void nbp_print(const struct atNBP *, u_int, u_short, u_char, u_char);static const char *print_cstring(const char *, const u_char *);static const struct atNBPtuple *nbp_tuple_print(const struct atNBPtuple *,						const u_char *,						u_short, u_char, u_char);static const struct atNBPtuple *nbp_name_print(const struct atNBPtuple *,					       const u_char *);static const char *ataddr_string(u_short, u_char);static void ddp_print(const u_char *, u_int, int, u_short, u_char, u_char);static const char *ddpskt_string(int);/* * Print LLAP packets received on a physical LocalTalk interface. */u_intltalk_if_print(const struct pcap_pkthdr *h, const u_char *p){	return (llap_print(p, h->caplen));}/* * Print AppleTalk LLAP packets. */u_intllap_print(register const u_char *bp, u_int length){	register const struct LAP *lp;	register const struct atDDP *dp;	register const struct atShortDDP *sdp;	u_short snet;	u_int hdrlen;	/*	 * Our packet is on a 4-byte boundary, as we're either called	 * directly from a top-level link-layer printer (ltalk_if_print)	 * or from the UDP printer.  The LLAP+DDP header is a multiple	 * of 4 bytes in length, so the DDP payload is also on a 4-byte	 * boundary, and we don't need to align it before calling	 * "ddp_print()".	 */	lp = (const struct LAP *)bp;	bp += sizeof(*lp);	length -= sizeof(*lp);	hdrlen = sizeof(*lp);	switch (lp->type) {	case lapShortDDP:		if (length < ddpSSize) {			(void)printf(" [|sddp %d]", length);			return (length);		}		sdp = (const struct atShortDDP *)bp;		printf("%s.%s",		    ataddr_string(0, lp->src), ddpskt_string(sdp->srcSkt));		printf(" > %s.%s:",		    ataddr_string(0, lp->dst), ddpskt_string(sdp->dstSkt));		bp += ddpSSize;		length -= ddpSSize;		hdrlen += ddpSSize;		ddp_print(bp, length, sdp->type, 0, lp->src, sdp->srcSkt);		break;	case lapDDP:		if (length < ddpSize) {			(void)printf(" [|ddp %d]", length);			return (length);		}		dp = (const struct atDDP *)bp;		snet = EXTRACT_16BITS(&dp->srcNet);		printf("%s.%s", ataddr_string(snet, dp->srcNode),		    ddpskt_string(dp->srcSkt));		printf(" > %s.%s:",		    ataddr_string(EXTRACT_16BITS(&dp->dstNet), dp->dstNode),		    ddpskt_string(dp->dstSkt));		bp += ddpSize;		length -= ddpSize;		hdrlen += ddpSize;		ddp_print(bp, length, dp->type, snet, dp->srcNode, dp->srcSkt);		break;#ifdef notdef	case lapKLAP:		klap_print(bp, length);		break;#endif	default:		printf("%d > %d at-lap#%d %d",		    lp->src, lp->dst, lp->type, length);		break;	}	return (hdrlen);}/* * Print EtherTalk/TokenTalk packets (or FDDITalk, or whatever it's called * when it runs over FDDI; yes, I've seen FDDI captures with AppleTalk * packets in them). */voidatalk_print(register const u_char *bp, u_int length){	register const struct atDDP *dp;	u_short snet;        if(!eflag)            printf("AT ");	if (length < ddpSize) {		(void)printf(" [|ddp %d]", length);		return;	}	dp = (const struct atDDP *)bp;	snet = EXTRACT_16BITS(&dp->srcNet);	printf("%s.%s", ataddr_string(snet, dp->srcNode),	       ddpskt_string(dp->srcSkt));	printf(" > %s.%s: ",	       ataddr_string(EXTRACT_16BITS(&dp->dstNet), dp->dstNode),	       ddpskt_string(dp->dstSkt));	bp += ddpSize;	length -= ddpSize;	ddp_print(bp, length, dp->type, snet, dp->srcNode, dp->srcSkt);}/* XXX should probably pass in the snap header and do checks like arp_print() */voidaarp_print(register const u_char *bp, u_int length){	register const struct aarp *ap;#define AT(member) ataddr_string((ap->member[1]<<8)|ap->member[2],ap->member[3])	printf("aarp ");	ap = (const struct aarp *)bp;	if (EXTRACT_16BITS(&ap->htype) == 1 &&	    EXTRACT_16BITS(&ap->ptype) == ETHERTYPE_ATALK &&	    ap->halen == 6 && ap->palen == 4 )		switch (EXTRACT_16BITS(&ap->op)) {		case 1:				/* request */			(void)printf("who-has %s tell %s",			    AT(pdaddr), AT(psaddr));			return;		case 2:				/* response */			(void)printf("reply %s is-at %s",			    AT(pdaddr), etheraddr_string(ap->hdaddr));			return;		case 3:				/* probe (oy!) */			(void)printf("probe %s tell %s",			    AT(pdaddr), AT(psaddr));			return;		}	(void)printf("len %u op %u htype %u ptype %#x halen %u palen %u",	    length, EXTRACT_16BITS(&ap->op), EXTRACT_16BITS(&ap->htype),	    EXTRACT_16BITS(&ap->ptype), ap->halen, ap->palen);}/* * Print AppleTalk Datagram Delivery Protocol packets. */static voidddp_print(register const u_char *bp, register u_int length, register int t,	  register u_short snet, register u_char snode, u_char skt){	switch (t) {	case ddpNBP:		nbp_print((const struct atNBP *)bp, length, snet, snode, skt);		break;	case ddpATP:		atp_print((const struct atATP *)bp, length);		break;	case ddpEIGRP:		eigrp_print(bp, length);		break;	default:		(void)printf(" at-%s %d", tok2str(type2str, NULL, t), length);		break;	}}static voidatp_print(register const struct atATP *ap, u_int length){	char c;	u_int32_t data;	if ((const u_char *)(ap + 1) > snapend) {		/* Just bail if we don't have the whole chunk. */		fputs(tstr, stdout);		return;	}	length -= sizeof(*ap);	switch (ap->control & 0xc0) {	case atpReqCode:		(void)printf(" atp-req%s %d",			     ap->control & atpXO? " " : "*",			     EXTRACT_16BITS(&ap->transID));		atp_bitmap_print(ap->bitmap);		if (length != 0)			(void)printf(" [len=%d]", length);		switch (ap->control & (atpEOM|atpSTS)) {		case atpEOM:			(void)printf(" [EOM]");			break;		case atpSTS:			(void)printf(" [STS]");			break;		case atpEOM|atpSTS:			(void)printf(" [EOM,STS]");			break;		}		break;	case atpRspCode:		(void)printf(" atp-resp%s%d:%d (%d)",			     ap->control & atpEOM? "*" : " ",			     EXTRACT_16BITS(&ap->transID), ap->bitmap, length);		switch (ap->control & (atpXO|atpSTS)) {		case atpXO:			(void)printf(" [XO]");			break;		case atpSTS:			(void)printf(" [STS]");			break;		case atpXO|atpSTS:			(void)printf(" [XO,STS]");			break;		}		break;	case atpRelCode:		(void)printf(" atp-rel  %d", EXTRACT_16BITS(&ap->transID));		atp_bitmap_print(ap->bitmap);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉久久夜色精品国产使用方法| 国产农村妇女精品| 国产精品一区二区视频| 日韩激情视频网站| 日韩不卡在线观看日韩不卡视频| 夜夜爽夜夜爽精品视频| 亚洲欧美精品午睡沙发| 亚洲欧美日韩系列| 午夜视频一区在线观看| 婷婷激情综合网| 黄色日韩网站视频| 成人午夜电影网站| 色噜噜狠狠成人中文综合 | 欧美xxxxx牲另类人与| 欧美成人伊人久久综合网| 久久久亚洲高清| 亚洲人xxxx| 婷婷中文字幕一区三区| 经典三级在线一区| 成人动漫一区二区三区| 日本乱人伦aⅴ精品| 欧美日韩国产色站一区二区三区| 欧美一区二区在线播放| 国产午夜精品久久久久久久| 亚洲天堂免费看| 男女性色大片免费观看一区二区 | 91日韩精品一区| 欧美精品在线一区二区三区| 精品国一区二区三区| 日本一区二区成人在线| 亚洲一区av在线| 国产乱对白刺激视频不卡| 91麻豆国产香蕉久久精品| 日韩欧美色综合| 亚洲男人的天堂在线观看| 久久国产精品免费| 色欧美乱欧美15图片| 精品国产99国产精品| 亚洲黄色小说网站| 国产精品资源站在线| 欧美日韩国产成人在线91| 国产亚洲短视频| 日韩精品亚洲专区| 日本久久电影网| 久久女同互慰一区二区三区| 亚洲一区二区三区四区在线免费观看 | 国产亲近乱来精品视频| 亚洲狠狠爱一区二区三区| 成人av片在线观看| 久久久久久久一区| 亚洲成人1区2区| 91社区在线播放| 国产精品人成在线观看免费| 秋霞国产午夜精品免费视频| 99久久99久久久精品齐齐| 精品国产伦一区二区三区观看体验| 亚洲日本青草视频在线怡红院| 久久国产精品露脸对白| 欧美男人的天堂一二区| 亚洲精品自拍动漫在线| 国产精品一区二区无线| 日韩免费性生活视频播放| 亚洲国产综合91精品麻豆| eeuss国产一区二区三区| 久久精品在这里| 国产在线视频一区二区三区| 538在线一区二区精品国产| 亚洲伦理在线免费看| 91原创在线视频| 中文字幕第一区综合| 国产麻豆视频一区| 久久精品视频在线免费观看| 蜜桃视频一区二区三区在线观看| 色哟哟在线观看一区二区三区| 国产欧美日韩不卡| 国产高清一区日本| 国产亚洲综合在线| 国产精品456| 国产精品日韩成人| 成人在线一区二区三区| 久久精品日韩一区二区三区| 国产sm精品调教视频网站| 久久婷婷国产综合国色天香| 国产精品1024久久| 中文字幕亚洲一区二区av在线 | 99久久综合国产精品| 国产精品久久久久久久裸模| 久久99九九99精品| 国产偷国产偷精品高清尤物| 国产a视频精品免费观看| 国产亚洲视频系列| 一本色道综合亚洲| 婷婷开心激情综合| 精品1区2区在线观看| 成人av在线网站| 一区二区三区免费观看| 欧美在线观看视频一区二区 | 一区二区三区鲁丝不卡| 6080日韩午夜伦伦午夜伦| 精品一区二区影视| 亚洲柠檬福利资源导航| 欧美性感一区二区三区| 黄色日韩网站视频| 亚洲男人都懂的| 精品三级av在线| 色狠狠一区二区| 精品亚洲porn| 一区二区三区在线观看国产| 精品欧美一区二区在线观看| 91蜜桃在线观看| 美女精品自拍一二三四| 亚洲男人都懂的| 亚洲精品在线免费观看视频| 一本一道综合狠狠老| 精品一区二区三区视频| 亚洲综合区在线| 国产欧美日韩综合精品一区二区| 欧美性色欧美a在线播放| 国产传媒欧美日韩成人| 偷拍一区二区三区| 亚洲男人的天堂av| 久久九九国产精品| 4438x亚洲最大成人网| 91在线免费看| 国内精品视频一区二区三区八戒| 亚洲一本大道在线| 亚洲色图在线看| 国产亚洲欧美日韩日本| 欧美电影免费提供在线观看| 在线观看国产一区二区| 成人av综合一区| 国产美女娇喘av呻吟久久| 人人精品人人爱| 亚洲成人动漫在线免费观看| 亚洲男人的天堂在线aⅴ视频 | 91在线porny国产在线看| 国产精品亚洲专一区二区三区 | 亚洲乱码国产乱码精品精的特点| 日韩一区二区精品葵司在线| 在线精品视频小说1| 成人黄色电影在线| 国产91精品免费| 成人亚洲精品久久久久软件| 国产美女一区二区三区| 国内精品伊人久久久久av一坑| 免费久久精品视频| 秋霞电影网一区二区| 亚洲6080在线| 日韩成人免费电影| 午夜在线成人av| 亚洲午夜免费视频| 亚洲线精品一区二区三区八戒| 亚洲日本电影在线| 亚洲天堂网中文字| 亚洲一区中文日韩| 婷婷中文字幕综合| 成人avav影音| 波多野洁衣一区| av高清久久久| 欧美色偷偷大香| 91精品国产色综合久久| 久久久综合激的五月天| 国产精品另类一区| 亚洲色图欧美偷拍| 午夜精品久久久久久久蜜桃app| 香蕉乱码成人久久天堂爱免费| 日韩精品成人一区二区在线| 免费成人你懂的| 懂色av中文字幕一区二区三区| www.亚洲色图.com| 在线观看欧美日本| 精品嫩草影院久久| 国产精品超碰97尤物18| 亚洲欧美福利一区二区| 亚洲a一区二区| 国产一区二区三区四区五区美女 | 色综合久久综合| 欧美日本国产一区| 久久久噜噜噜久久中文字幕色伊伊| 国产精品视频你懂的| 日一区二区三区| 成人福利在线看| 欧美一区二区高清| 国产精品久久久久影院老司| 亚洲成a人片在线观看中文| 韩国一区二区视频| 欧美午夜宅男影院| 久久精品一区四区| 午夜成人免费电影| 国产凹凸在线观看一区二区 | 九九热在线视频观看这里只有精品| 岛国av在线一区| 日韩久久免费av| 亚洲狠狠丁香婷婷综合久久久| 精品亚洲国内自在自线福利| 在线视频一区二区三区| 2023国产精华国产精品| 亚洲国产一区视频| av在线一区二区三区| 精品少妇一区二区三区免费观看 |