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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? print-udp.c

?? TCPDUMP的C語言源代碼,是在數(shù)據(jù)鏈路層的應(yīng)用
?? C
?? 第 1 頁 / 共 2 頁
字號:
}#endifstatic voidudpipaddr_print(const struct ip *ip, int sport, int dport){#ifdef INET6	const struct ip6_hdr *ip6;	if (IP_V(ip) == 6)		ip6 = (const struct ip6_hdr *)ip;	else		ip6 = NULL;	if (ip6) {		if (ip6->ip6_nxt == IPPROTO_UDP) {			if (sport == -1) {				(void)printf("%s > %s: ",					ip6addr_string(&ip6->ip6_src),					ip6addr_string(&ip6->ip6_dst));			} else {				(void)printf("%s.%s > %s.%s: ",					ip6addr_string(&ip6->ip6_src),					udpport_string(sport),					ip6addr_string(&ip6->ip6_dst),					udpport_string(dport));			}		} else {			if (sport != -1) {				(void)printf("%s > %s: ",					udpport_string(sport),					udpport_string(dport));			}		}	} else#endif /*INET6*/	{		if (ip->ip_p == IPPROTO_UDP) {			if (sport == -1) {				(void)printf("%s > %s: ",					ipaddr_string(&ip->ip_src),					ipaddr_string(&ip->ip_dst));			} else {				(void)printf("%s.%s > %s.%s: ",					ipaddr_string(&ip->ip_src),					udpport_string(sport),					ipaddr_string(&ip->ip_dst),					udpport_string(dport));			}		} else {			if (sport != -1) {				(void)printf("%s > %s: ",					udpport_string(sport),					udpport_string(dport));			}		}	}}voidudp_print(register const u_char *bp, u_int length,	  register const u_char *bp2, int fragmented){	register const struct udphdr *up;	register const struct ip *ip;	register const u_char *cp;	register const u_char *ep = bp + length;	u_int16_t sport, dport, ulen;#ifdef INET6	register const struct ip6_hdr *ip6;#endif	if (ep > snapend)		ep = snapend;	up = (struct udphdr *)bp;	ip = (struct ip *)bp2;#ifdef INET6	if (IP_V(ip) == 6)		ip6 = (struct ip6_hdr *)bp2;	else		ip6 = NULL;#endif /*INET6*/	cp = (u_char *)(up + 1);	if (!TTEST(up->uh_dport)) {		udpipaddr_print(ip, -1, -1);		(void)printf("[|udp]");		return;	}	sport = EXTRACT_16BITS(&up->uh_sport);	dport = EXTRACT_16BITS(&up->uh_dport);	if (length < sizeof(struct udphdr)) {		udpipaddr_print(ip, sport, dport);		(void)printf("truncated-udp %d", length);		return;	}	length -= sizeof(struct udphdr);	if (cp > snapend) {		udpipaddr_print(ip, sport, dport);		(void)printf("[|udp]");		return;	}	ulen = EXTRACT_16BITS(&up->uh_ulen);	if (ulen < 8) {		udpipaddr_print(ip, sport, dport);		(void)printf("truncated-udplength %d", ulen);		return;	}	if (packettype) {		register struct sunrpc_msg *rp;		enum sunrpc_msg_type direction;		switch (packettype) {		case PT_VAT:			udpipaddr_print(ip, sport, dport);			vat_print((void *)(up + 1), up);			break;		case PT_WB:			udpipaddr_print(ip, sport, dport);			wb_print((void *)(up + 1), length);			break;		case PT_RPC:			rp = (struct sunrpc_msg *)(up + 1);			direction = (enum sunrpc_msg_type)EXTRACT_32BITS(&rp->rm_direction);			if (direction == SUNRPC_CALL)				sunrpcrequest_print((u_char *)rp, length,				    (u_char *)ip);			else				nfsreply_print((u_char *)rp, length,				    (u_char *)ip);			/*XXX*/			break;		case PT_RTP:			udpipaddr_print(ip, sport, dport);			rtp_print((void *)(up + 1), length, up);			break;		case PT_RTCP:			udpipaddr_print(ip, sport, dport);			while (cp < ep)				cp = rtcp_print(cp, ep);			break;		case PT_SNMP:			udpipaddr_print(ip, sport, dport);			snmp_print((const u_char *)(up + 1), length);			break;		case PT_CNFP:			udpipaddr_print(ip, sport, dport);			cnfp_print(cp, (const u_char *)ip);			break;		case PT_TFTP:			udpipaddr_print(ip, sport, dport);			tftp_print(cp, length);			break;		case PT_AODV:			udpipaddr_print(ip, sport, dport);			aodv_print((const u_char *)(up + 1), length,#ifdef INET6			    ip6 != NULL);#else			    0);#endif			break;		}		return;	}	if (!qflag) {		register struct sunrpc_msg *rp;		enum sunrpc_msg_type direction;		rp = (struct sunrpc_msg *)(up + 1);		if (TTEST(rp->rm_direction)) {			direction = (enum sunrpc_msg_type)EXTRACT_32BITS(&rp->rm_direction);			if (dport == NFS_PORT && direction == SUNRPC_CALL) {				nfsreq_print((u_char *)rp, length,				    (u_char *)ip);				return;			}			if (sport == NFS_PORT && direction == SUNRPC_REPLY) {				nfsreply_print((u_char *)rp, length,				    (u_char *)ip);				return;			}#ifdef notdef			if (dport == SUNRPC_PORT && direction == SUNRPC_CALL) {				sunrpcrequest_print((u_char *)rp, length, (u_char *)ip);				return;			}#endif		}		if (TTEST(((struct LAP *)cp)->type) &&		    ((struct LAP *)cp)->type == lapDDP &&		    (atalk_port(sport) || atalk_port(dport))) {			if (vflag)				fputs("kip ", stdout);			llap_print(cp, length);			return;		}	}	udpipaddr_print(ip, sport, dport);	if (IP_V(ip) == 4 && (vflag > 1) && !fragmented) {		int sum = up->uh_sum;		if (sum == 0) {			(void)printf("[no cksum] ");		} else if (TTEST2(cp[0], length)) {			sum = udp_cksum(ip, up, length + sizeof(struct udphdr));			if (sum != 0)				(void)printf("[bad udp cksum %x!] ", sum);			else				(void)printf("[udp sum ok] ");		}	}#ifdef INET6	if (IP_V(ip) == 6 && ip6->ip6_plen && vflag && !fragmented) {		int sum = up->uh_sum;		/* for IPv6, UDP checksum is mandatory */		if (TTEST2(cp[0], length)) {			sum = udp6_cksum(ip6, up, length + sizeof(struct udphdr));			if (sum != 0)				(void)printf("[bad udp cksum %x!] ", sum);			else				(void)printf("[udp sum ok] ");		}	}#endif	if (!qflag) {#define ISPORT(p) (dport == (p) || sport == (p))		if (ISPORT(NAMESERVER_PORT))			ns_print((const u_char *)(up + 1), length, 0);		else if (ISPORT(MULTICASTDNS_PORT))			ns_print((const u_char *)(up + 1), length, 1);		else if (ISPORT(TIMED_PORT))			timed_print((const u_char *)(up + 1));		else if (ISPORT(TFTP_PORT))			tftp_print((const u_char *)(up + 1), length);		else if (ISPORT(IPPORT_BOOTPC) || ISPORT(IPPORT_BOOTPS))			bootp_print((const u_char *)(up + 1), length);		else if (ISPORT(RIP_PORT))			rip_print((const u_char *)(up + 1), length);		else if (ISPORT(AODV_PORT))			aodv_print((const u_char *)(up + 1), length,#ifdef INET6			    ip6 != NULL);#else			    0);#endif	        else if (ISPORT(ISAKMP_PORT))			 isakmp_print(gndo, (const u_char *)(up + 1), length, bp2);  	        else if (ISPORT(ISAKMP_PORT_NATT))			 isakmp_rfc3948_print(gndo, (const u_char *)(up + 1), length, bp2);#if 1 /*???*/   	        else if (ISPORT(ISAKMP_PORT_USER1) || ISPORT(ISAKMP_PORT_USER2))			isakmp_print(gndo, (const u_char *)(up + 1), length, bp2);#endif		else if (ISPORT(SNMP_PORT) || ISPORT(SNMPTRAP_PORT))			snmp_print((const u_char *)(up + 1), length);		else if (ISPORT(NTP_PORT))			ntp_print((const u_char *)(up + 1), length);		else if (ISPORT(KERBEROS_PORT) || ISPORT(KERBEROS_SEC_PORT))			krb_print((const void *)(up + 1));		else if (ISPORT(L2TP_PORT))			l2tp_print((const u_char *)(up + 1), length);#ifdef TCPDUMP_DO_SMB		else if (ISPORT(NETBIOS_NS_PORT))			nbt_udp137_print((const u_char *)(up + 1), length);		else if (ISPORT(NETBIOS_DGRAM_PORT))			nbt_udp138_print((const u_char *)(up + 1), length);#endif		else if (dport == 3456)			vat_print((const void *)(up + 1), up);		else if (ISPORT(ZEPHYR_SRV_PORT) || ISPORT(ZEPHYR_CLT_PORT))			zephyr_print((const void *)(up + 1), length);		/*		 * Since there are 10 possible ports to check, I think		 * a <> test would be more efficient		 */		else if ((sport >= RX_PORT_LOW && sport <= RX_PORT_HIGH) ||			 (dport >= RX_PORT_LOW && dport <= RX_PORT_HIGH))			rx_print((const void *)(up + 1), length, sport, dport,				 (u_char *) ip);#ifdef INET6		else if (ISPORT(RIPNG_PORT))			ripng_print((const u_char *)(up + 1), length);		else if (ISPORT(DHCP6_SERV_PORT) || ISPORT(DHCP6_CLI_PORT)) {			dhcp6_print((const u_char *)(up + 1), length);		}#endif /*INET6*/		/*		 * Kludge in test for whiteboard packets.		 */		else if (dport == 4567)			wb_print((const void *)(up + 1), length);		else if (ISPORT(CISCO_AUTORP_PORT))			cisco_autorp_print((const void *)(up + 1), length);		else if (ISPORT(RADIUS_PORT) ||			 ISPORT(RADIUS_NEW_PORT) ||			 ISPORT(RADIUS_ACCOUNTING_PORT) ||			 ISPORT(RADIUS_NEW_ACCOUNTING_PORT) )			radius_print((const u_char *)(up+1), length);		else if (dport == HSRP_PORT)			hsrp_print((const u_char *)(up + 1), length);		else if (ISPORT(LWRES_PORT))			lwres_print((const u_char *)(up + 1), length);                else if (ISPORT(LDP_PORT))			ldp_print((const u_char *)(up + 1), length);                else if (ISPORT(OLSR_PORT))			olsr_print((const u_char *)(up + 1), length);                else if (ISPORT(MPLS_LSP_PING_PORT))			lspping_print((const u_char *)(up + 1), length);		else if (dport == BFD_CONTROL_PORT ||			 dport == BFD_ECHO_PORT )			bfd_print((const u_char *)(up+1), length, dport);                else if (ISPORT(LMP_PORT))			lmp_print((const u_char *)(up + 1), length);		else if (ISPORT(VQP_PORT))			vqp_print((const u_char *)(up + 1), length);                else if (ISPORT(SFLOW_PORT))                        sflow_print((const u_char *)(up + 1), length);	        else if (dport == LWAPP_CONTROL_PORT)			lwapp_control_print((const u_char *)(up + 1), length, 1);                else if (sport == LWAPP_CONTROL_PORT)                        lwapp_control_print((const u_char *)(up + 1), length, 0);                else if (ISPORT(LWAPP_DATA_PORT))                        lwapp_data_print((const u_char *)(up + 1), length);                else if (ISPORT(SIP_PORT))			sip_print((const u_char *)(up + 1), length);                else if (ISPORT(SYSLOG_PORT))			syslog_print((const u_char *)(up + 1), length);		else			(void)printf("UDP, length %u",			    (u_int32_t)(ulen - sizeof(*up)));#undef ISPORT	} else		(void)printf("UDP, length %u", (u_int32_t)(ulen - sizeof(*up)));}/* * Local Variables: * c-style: whitesmith * c-basic-offset: 8 * End: */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av成人免费在线| 久久精品国产精品亚洲综合| 成人免费毛片a| 日本一区二区三区四区| a级精品国产片在线观看| 亚洲伦理在线精品| 欧美日韩免费观看一区三区| 亚洲成人免费视频| 久久一区二区三区四区| 国产精品77777| 中文字幕在线播放不卡一区| 色素色在线综合| 五月婷婷另类国产| 日韩欧美成人激情| 岛国精品一区二区| 一区二区在线免费观看| 欧美精品粉嫩高潮一区二区| 久久99精品久久久| 国产精品久久久久影院老司 | 日韩成人dvd| 精品国产1区2区3区| 盗摄精品av一区二区三区| 亚洲中国最大av网站| 欧美tickling网站挠脚心| 成人一区二区三区| 午夜精品久久久久久久蜜桃app| 日韩一区和二区| av午夜精品一区二区三区| 亚洲第一综合色| 欧美国产综合色视频| 欧美另类高清zo欧美| 国产成人av电影在线播放| 亚洲v日本v欧美v久久精品| 精品国产精品一区二区夜夜嗨| 99v久久综合狠狠综合久久| 美女视频黄免费的久久| 亚洲狼人国产精品| 26uuu精品一区二区三区四区在线| 成人av在线一区二区| 日本伊人精品一区二区三区观看方式| 国产日产亚洲精品系列| 日韩欧美一区电影| 欧美视频在线一区| jlzzjlzz亚洲日本少妇| 狠狠色丁香久久婷婷综| 亚洲制服丝袜av| 中文字幕在线播放不卡一区| 精品国产3级a| 日韩情涩欧美日韩视频| 欧美日韩亚洲综合在线 | 国产一区二区主播在线| 亚洲电影你懂得| 亚洲精品免费视频| 国产精品女同互慰在线看| 日韩视频一区二区在线观看| 欧美色老头old∨ideo| 91片黄在线观看| 懂色av噜噜一区二区三区av| 紧缚捆绑精品一区二区| 喷水一区二区三区| 丝瓜av网站精品一区二区| 亚洲一区二区综合| 一区二区三区视频在线观看| 亚洲欧洲精品一区二区精品久久久 | 国产日产精品一区| 精品美女一区二区| 日韩欧美一区中文| 欧美美女视频在线观看| 欧美亚洲另类激情小说| 日本高清免费不卡视频| 91亚洲精品乱码久久久久久蜜桃| 国产91精品一区二区麻豆网站 | 国产成人精品影视| 东方aⅴ免费观看久久av| 成人伦理片在线| 成人一区二区三区视频在线观看| 粉嫩一区二区三区性色av| 国产老肥熟一区二区三区| 国产在线精品免费av| 国产一区啦啦啦在线观看| 国产一区二区0| 国产成人精品免费看| av在线不卡网| 色综合久久综合| 欧美亚洲综合另类| 欧美疯狂做受xxxx富婆| 欧美一区二区三区色| 亚洲精品在线观看网站| 久久久欧美精品sm网站| 亚洲国产激情av| 亚洲美女淫视频| 午夜在线成人av| 国模少妇一区二区三区| 成人免费看视频| 欧美亚洲图片小说| 日韩午夜在线影院| 久久久久国产一区二区三区四区| 亚洲国产成人在线| 亚洲午夜国产一区99re久久| 日韩精品一卡二卡三卡四卡无卡| 蜜桃精品视频在线观看| 国产高清成人在线| 在线观看91视频| 日韩精品一区二区三区中文精品| 国产嫩草影院久久久久| 亚洲激情五月婷婷| 久久电影网电视剧免费观看| 岛国av在线一区| 欧美喷水一区二区| 久久精品人人爽人人爽| 一个色综合网站| 国内精品久久久久影院一蜜桃| av日韩在线网站| 欧美肥大bbwbbw高潮| 久久人人超碰精品| 亚洲国产一区二区在线播放| 久久精工是国产品牌吗| 色综合天天综合网天天看片| 欧美一区日本一区韩国一区| 国产精品视频九色porn| 日韩精品电影在线观看| 成人黄色777网| 日韩欧美激情一区| 一区二区三区欧美久久| 精品亚洲porn| 欧美午夜电影在线播放| 欧美国产精品久久| 日韩电影在线免费看| 91网站在线播放| 精品久久久久久久一区二区蜜臀| 一区二区三区色| 成人h动漫精品一区二| 精品久久人人做人人爱| 亚洲第一搞黄网站| 色综合久久综合网| 国产欧美一区二区精品久导航 | 欧美久久久久久久久中文字幕| 国产日韩欧美麻豆| 美女脱光内衣内裤视频久久网站 | 国产精品成人免费精品自在线观看| 天天亚洲美女在线视频| 91农村精品一区二区在线| 久久久亚洲欧洲日产国码αv| 丝袜国产日韩另类美女| 91成人国产精品| 亚洲色图.com| 成人福利在线看| 国产夜色精品一区二区av| 奇米四色…亚洲| 91精品国产综合久久久久久| 亚洲精品国产高清久久伦理二区| 高清不卡在线观看| 久久久久久黄色| 黄色小说综合网站| 精品成人一区二区三区| 美脚の诱脚舐め脚责91| 欧美区一区二区三区| 婷婷六月综合亚洲| 欧美日韩精品一区二区三区 | 午夜日韩在线观看| 在线欧美小视频| 亚洲国产日韩在线一区模特| 在线视频一区二区免费| 一卡二卡三卡日韩欧美| 在线观看一区日韩| 亚洲一二三四区| 欧美日韩免费高清一区色橹橹| 亚洲最新视频在线观看| 欧洲在线/亚洲| 午夜精品久久久久久久久| 欧美日韩成人综合在线一区二区| 亚洲国产日韩a在线播放性色| 欧美性三三影院| 日韩二区在线观看| www国产亚洲精品久久麻豆| 国产美女主播视频一区| 国产免费观看久久| 91蜜桃免费观看视频| 亚洲一区免费在线观看| 欧美一区二区大片| 韩国女主播一区二区三区| 亚洲国产精华液网站w| 色偷偷久久一区二区三区| 亚洲一区二区精品视频| 日韩久久久久久| 国产成人av在线影院| 中文字幕在线一区| 欧美日韩免费视频| 国内外成人在线| 国产精品国产a| 欧美另类高清zo欧美| 国产揄拍国内精品对白| 中文字幕在线一区| 91精品国产综合久久久久久久| 国内精品在线播放| 亚洲三级视频在线观看| 在线观看91av| 成人高清av在线| 日韩不卡手机在线v区| 久久精品人人爽人人爽|