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

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

?? ping6.c

?? IPv6環(huán)境中的ping實現(xiàn)
?? C
?? 第 1 頁 / 共 5 頁
字號:
			    (mtuctl->ip6m_addr.sin6_scope_id &&			     dst.sin6_scope_id &&			     mtuctl->ip6m_addr.sin6_scope_id !=			     dst.sin6_scope_id)) {				if ((options & F_VERBOSE) != 0) {					printf("path MTU for %s is notified. "					       "(ignored)\n",					   pr_addr((struct sockaddr *)&mtuctl->ip6m_addr,					   sizeof(mtuctl->ip6m_addr)));				}				return(0);			}			/*			 * Ignore an invalid MTU. XXX: can we just believe			 * the kernel check?			 */			if (mtuctl->ip6m_mtu < IPV6_MMTU)				return(0);			/* notification for our destination. return the MTU. */			return((int)mtuctl->ip6m_mtu);		}	}#endif	return(0);}/* * tvsub -- *	Subtract 2 timeval structs:  out = out - in.  Out is assumed to * be >= in. */voidtvsub(out, in)	struct timeval *out, *in;{	if ((out->tv_usec -= in->tv_usec) < 0) {		--out->tv_sec;		out->tv_usec += 1000000;	}	out->tv_sec -= in->tv_sec;}/* * onint -- *	SIGINT handler. *//* ARGSUSED */voidonint(notused)	int notused;{	summary();	(void)signal(SIGINT, SIG_DFL);	(void)kill(getpid(), SIGINT);	/* NOTREACHED */	exit(1);}/* * summary -- *	Print out statistics. */voidsummary(){	(void)printf("\n--- %s ping6 statistics ---\n", hostname);	(void)printf("%ld packets transmitted, ", ntransmitted);	(void)printf("%ld packets received, ", nreceived);	if (nrepeats)		(void)printf("+%ld duplicates, ", nrepeats);	if (ntransmitted) {		if (nreceived > ntransmitted)			(void)printf("-- somebody's duplicating packets!");		else			(void)printf("%d%% packet loss",			    (int) (((ntransmitted - nreceived) * 100) /			    ntransmitted));	}	(void)putchar('\n');	if (nreceived && timing) {		/* Only display average to microseconds */		double num = nreceived + nrepeats;		double avg = tsum / num;#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__)		double dev = sqrt(tsumsq / num - avg * avg);		(void)printf(		    "round-trip min/avg/max/std-dev = %.3f/%.3f/%.3f/%.3f ms\n",		    tmin, avg, tmax, dev);#else		(void)printf(		    "round-trip min/avg/max = %.3f/%.3f/%.3f ms\n",		    tmin, avg, tmax);#endif		(void)fflush(stdout);	}	(void)fflush(stdout);}/*subject type*/static const char *niqcode[] = {	"IPv6 address",	"DNS label",	/*or empty*/	"IPv4 address",};/*result code*/static const char *nircode[] = {	"Success", "Refused", "Unknown",};/* * pr_icmph -- *	Print a descriptive string about an ICMP header. */voidpr_icmph(icp, end)	struct icmp6_hdr *icp;	u_char *end;{	char ntop_buf[INET6_ADDRSTRLEN];	struct nd_redirect *red;	struct icmp6_nodeinfo *ni;	char dnsname[MAXDNAME + 1];	const u_char *cp;	size_t l;	switch (icp->icmp6_type) {	case ICMP6_DST_UNREACH:		switch (icp->icmp6_code) {		case ICMP6_DST_UNREACH_NOROUTE:			(void)printf("No Route to Destination\n");			break;		case ICMP6_DST_UNREACH_ADMIN:			(void)printf("Destination Administratively "			    "Unreachable\n");			break;		case ICMP6_DST_UNREACH_BEYONDSCOPE:			(void)printf("Destination Unreachable Beyond Scope\n");			break;		case ICMP6_DST_UNREACH_ADDR:			(void)printf("Destination Host Unreachable\n");			break;		case ICMP6_DST_UNREACH_NOPORT:			(void)printf("Destination Port Unreachable\n");			break;		default:			(void)printf("Destination Unreachable, Bad Code: %d\n",			    icp->icmp6_code);			break;		}		/* Print returned IP header information */		pr_retip((struct ip6_hdr *)(icp + 1), end);		break;	case ICMP6_PACKET_TOO_BIG:		(void)printf("Packet too big mtu = %d\n",		    (int)ntohl(icp->icmp6_mtu));		pr_retip((struct ip6_hdr *)(icp + 1), end);		break;	case ICMP6_TIME_EXCEEDED:		switch (icp->icmp6_code) {		case ICMP6_TIME_EXCEED_TRANSIT:			(void)printf("Time to live exceeded\n");			break;		case ICMP6_TIME_EXCEED_REASSEMBLY:			(void)printf("Frag reassembly time exceeded\n");			break;		default:			(void)printf("Time exceeded, Bad Code: %d\n",			    icp->icmp6_code);			break;		}		pr_retip((struct ip6_hdr *)(icp + 1), end);		break;	case ICMP6_PARAM_PROB:		(void)printf("Parameter problem: ");		switch (icp->icmp6_code) {		case ICMP6_PARAMPROB_HEADER:			(void)printf("Erroneous Header ");			break;		case ICMP6_PARAMPROB_NEXTHEADER:			(void)printf("Unknown Nextheader ");			break;		case ICMP6_PARAMPROB_OPTION:			(void)printf("Unrecognized Option ");			break;		default:			(void)printf("Bad code(%d) ", icp->icmp6_code);			break;		}		(void)printf("pointer = 0x%02x\n",		    (u_int32_t)ntohl(icp->icmp6_pptr));		pr_retip((struct ip6_hdr *)(icp + 1), end);		break;	case ICMP6_ECHO_REQUEST:		(void)printf("Echo Request");		/* XXX ID + Seq + Data */		break;	case ICMP6_ECHO_REPLY:		(void)printf("Echo Reply");		/* XXX ID + Seq + Data */		break;	case ICMP6_MEMBERSHIP_QUERY:		(void)printf("Listener Query");		break;	case ICMP6_MEMBERSHIP_REPORT:		(void)printf("Listener Report");		break;	case ICMP6_MEMBERSHIP_REDUCTION:		(void)printf("Listener Done");		break;	case ND_ROUTER_SOLICIT:		(void)printf("Router Solicitation");		break;	case ND_ROUTER_ADVERT:		(void)printf("Router Advertisement");		break;	case ND_NEIGHBOR_SOLICIT:		(void)printf("Neighbor Solicitation");		break;	case ND_NEIGHBOR_ADVERT:		(void)printf("Neighbor Advertisement");		break;	case ND_REDIRECT:		red = (struct nd_redirect *)icp;		(void)printf("Redirect\n");		if (!inet_ntop(AF_INET6, &red->nd_rd_dst, ntop_buf,		    sizeof(ntop_buf)))			strncpy(ntop_buf, "?", sizeof(ntop_buf));		(void)printf("Destination: %s", ntop_buf);		if (!inet_ntop(AF_INET6, &red->nd_rd_target, ntop_buf,		    sizeof(ntop_buf)))			strncpy(ntop_buf, "?", sizeof(ntop_buf));		(void)printf(" New Target: %s", ntop_buf);		break;	case ICMP6_NI_QUERY:		(void)printf("Node Information Query");		/* XXX ID + Seq + Data */		ni = (struct icmp6_nodeinfo *)icp;		l = end - (u_char *)(ni + 1);		printf(", ");		switch (ntohs(ni->ni_qtype)) {		case NI_QTYPE_NOOP:			(void)printf("NOOP");			break;		case NI_QTYPE_SUPTYPES:			(void)printf("Supported qtypes");			break;		case NI_QTYPE_FQDN:			(void)printf("DNS name");			break;		case NI_QTYPE_NODEADDR:			(void)printf("nodeaddr");			break;		case NI_QTYPE_IPV4ADDR:			(void)printf("IPv4 nodeaddr");			break;		default:			(void)printf("unknown qtype");			break;		}		if (options & F_VERBOSE) {			switch (ni->ni_code) {			case ICMP6_NI_SUBJ_IPV6:				if (l == sizeof(struct in6_addr) &&				    inet_ntop(AF_INET6, ni + 1, ntop_buf,				    sizeof(ntop_buf)) != NULL) {					(void)printf(", subject=%s(%s)",					    niqcode[ni->ni_code], ntop_buf);				} else {#if 1					/* backward compat to -W */					(void)printf(", oldfqdn");#else					(void)printf(", invalid");#endif				}				break;			case ICMP6_NI_SUBJ_FQDN:				if (end == (u_char *)(ni + 1)) {					(void)printf(", no subject");					break;				}				printf(", subject=%s", niqcode[ni->ni_code]);				cp = (const u_char *)(ni + 1);				if (dnsdecode(&cp, end, NULL, dnsname,				    sizeof(dnsname)) != NULL)					printf("(%s)", dnsname);				else					printf("(invalid)");				break;			case ICMP6_NI_SUBJ_IPV4:				if (l == sizeof(struct in_addr) &&				    inet_ntop(AF_INET, ni + 1, ntop_buf,				    sizeof(ntop_buf)) != NULL) {					(void)printf(", subject=%s(%s)",					    niqcode[ni->ni_code], ntop_buf);				} else					(void)printf(", invalid");				break;			default:				(void)printf(", invalid");				break;			}		}		break;	case ICMP6_NI_REPLY:		(void)printf("Node Information Reply");		/* XXX ID + Seq + Data */		ni = (struct icmp6_nodeinfo *)icp;		printf(", ");		switch (ntohs(ni->ni_qtype)) {		case NI_QTYPE_NOOP:			(void)printf("NOOP");			break;		case NI_QTYPE_SUPTYPES:			(void)printf("Supported qtypes");			break;		case NI_QTYPE_FQDN:			(void)printf("DNS name");			break;		case NI_QTYPE_NODEADDR:			(void)printf("nodeaddr");			break;		case NI_QTYPE_IPV4ADDR:			(void)printf("IPv4 nodeaddr");			break;		default:			(void)printf("unknown qtype");			break;		}		if (options & F_VERBOSE) {			if (ni->ni_code > sizeof(nircode) / sizeof(nircode[0]))				printf(", invalid");			else				printf(", %s", nircode[ni->ni_code]);		}		break;	default:		(void)printf("Bad ICMP type: %d", icp->icmp6_type);	}}/* * pr_iph -- *	Print an IP6 header. */voidpr_iph(ip6)	struct ip6_hdr *ip6;{	u_int32_t flow = ip6->ip6_flow & IPV6_FLOWLABEL_MASK;	u_int8_t tc;	char ntop_buf[INET6_ADDRSTRLEN];	tc = *(&ip6->ip6_vfc + 1); /* XXX */	tc = (tc >> 4) & 0x0f;	tc |= (ip6->ip6_vfc << 4);	printf("Vr TC  Flow Plen Nxt Hlim\n");	printf(" %1x %02x %05x %04x  %02x   %02x\n",	    (ip6->ip6_vfc & IPV6_VERSION_MASK) >> 4, tc, (u_int32_t)ntohl(flow),	    ntohs(ip6->ip6_plen), ip6->ip6_nxt, ip6->ip6_hlim);	if (!inet_ntop(AF_INET6, &ip6->ip6_src, ntop_buf, sizeof(ntop_buf)))		strncpy(ntop_buf, "?", sizeof(ntop_buf));	printf("%s->", ntop_buf);	if (!inet_ntop(AF_INET6, &ip6->ip6_dst, ntop_buf, sizeof(ntop_buf)))		strncpy(ntop_buf, "?", sizeof(ntop_buf));	printf("%s\n", ntop_buf);}/* * pr_addr -- *	Return an ascii host address as a dotted quad and optionally with * a hostname. */const char *pr_addr(addr, addrlen)	struct sockaddr *addr;	int addrlen;{	static char buf[NI_MAXHOST];	int flag = 0;	if ((options & F_HOSTNAME) == 0)		flag |= NI_NUMERICHOST;	if (getnameinfo(addr, addrlen, buf, sizeof(buf), NULL, 0, flag) == 0)		return (buf);	else		return "?";}/* * pr_retip -- *	Dump some info on a returned (via ICMPv6) IPv6 packet. */voidpr_retip(ip6, end)	struct ip6_hdr *ip6;	u_char *end;{	u_char *cp = (u_char *)ip6, nh;	int hlen;	if (end - (u_char *)ip6 < sizeof(*ip6)) {		printf("IP6");		goto trunc;	}	pr_iph(ip6);	hlen = sizeof(*ip6);	nh = ip6->ip6_nxt;	cp += hlen;	while (end - cp >= 8) {		switch (nh) {		case IPPROTO_HOPOPTS:			printf("HBH ");			hlen = (((struct ip6_hbh *)cp)->ip6h_len+1) << 3;			nh = ((struct ip6_hbh *)cp)->ip6h_nxt;			break;		case IPPROTO_DSTOPTS:			printf("DSTOPT ");			hlen = (((struct ip6_dest *)cp)->ip6d_len+1) << 3;			nh = ((struct ip6_dest *)cp)->ip6d_nxt;			break;		case IPPROTO_FRAGMENT:			printf("FRAG ");			hlen = sizeof(struct ip6_frag);			nh = ((struct ip6_frag *)cp)->ip6f_nxt;			break;		case IPPROTO_ROUTING:			printf("RTHDR ");			hlen = (((struct ip6_rthdr *)cp)->ip6r_len+1) << 3;			nh = ((struct ip6_rthdr *)cp)->ip6r_nxt;			break;#ifdef IPSEC		case IPPROTO_AH:			printf("AH ");			hlen = (((struct ah *)cp)->ah_len+2) << 2;			nh = ((struct ah *)cp)->ah_nxt;			break;#endif		case IPPROTO_ICMPV6:			printf("ICMP6: type = %d, code = %d\n",			    *cp, *(cp + 1));			return;		case IPPROTO_ESP:			printf("ESP\n");			return;		case IPPROTO_TCP:			printf("TCP: from port %u, to port %u (decimal)\n",			    (*cp * 256 + *(cp + 1)),			    (*(cp + 2) * 256 + *(cp + 3)));			return;		case IPPROTO_UDP:			printf("UDP: from port %u, to port %u (decimal)\n",			    (*cp * 256 + *(cp + 1)),			    (*(cp + 2) * 256 + *(cp + 3)));			return;		default:			printf("Unknown Header(%d)\n", nh);			return;		}		if ((cp += hlen) >= end)			goto trunc;	}	if (end - cp < 8)		goto trunc;	putchar('\n');	return;  trunc:	printf("...\n");	return;}voidfill(bp, patp)	char *bp, *patp;{	int ii, jj, kk;	int pat[16];	char *cp;	for (cp = patp; *cp; cp++)		if (!isxdigit(*cp))			errx(1, "patterns must be specified as hex digits");	ii = sscanf(patp,	    "%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x%2x",	    &pat[0], &pat[1], &pat[2], &pat[3], &pat[4], &pat[5], &pat[6],	    &pat[7], &pat[8], &pat[9], &pat[10], &pat[11], &pat[12],	    &pat[13], &pat[14], &pat[15]);/* xxx */	if (ii > 0)		for (kk = 0;		    kk <= MAXDATALEN - (8 + sizeof(struct tv32) + ii);		    kk += ii)			for (jj = 0; jj < ii; ++jj)				bp[jj + kk] = pat[jj];	if (!(options & F_QUIET)) {		(void)printf("PATTERN: 0x");		for (jj = 0; jj < ii; ++jj)			(void)printf("%02x", bp[jj] & 0xFF);		(void)printf("\n");	}}#ifdef IPSEC#ifdef IPSEC_POLICY_IPSECintsetpolicy(so, policy)	int so;	char *policy;{	char *buf;	if (policy == NULL)		re

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷成人综合网| 国产综合色产在线精品| 欧美aaaaa成人免费观看视频| 精品一区二区三区视频在线观看| 色综合天天综合色综合av| 56国语精品自产拍在线观看| 国产精品国产a| 久久国产免费看| 欧美午夜影院一区| 国产精品麻豆一区二区| 美国精品在线观看| 欧美色视频一区| 日本一区二区动态图| 美女免费视频一区| 欧美日韩精品三区| 综合分类小说区另类春色亚洲小说欧美| 免费在线观看视频一区| 在线亚洲人成电影网站色www| 国产日韩欧美精品一区| 美女一区二区视频| 666欧美在线视频| 亚洲一区二区综合| 一本色道**综合亚洲精品蜜桃冫| 久久精品男人天堂av| 久久99九九99精品| 日韩一区二区在线看| 亚洲国产成人高清精品| 色吧成人激情小说| 一区二区三区丝袜| 日本道免费精品一区二区三区| 国产精品高潮久久久久无| 成人中文字幕电影| 亚洲国产电影在线观看| 国产成人在线视频网站| 久久影院电视剧免费观看| 精品一区二区在线视频| 欧美不卡123| 久久国产精品99精品国产| 欧美成人a在线| 久久丁香综合五月国产三级网站| 日韩三级精品电影久久久| 免费成人在线网站| 久久先锋资源网| 成人一区二区视频| 亚洲少妇30p| 欧美色精品在线视频| 日韩和欧美一区二区| 欧美不卡一区二区三区四区| 国精产品一区一区三区mba视频| 久久噜噜亚洲综合| 99精品桃花视频在线观看| 蜜臀av在线播放一区二区三区| 久久综合久久综合亚洲| 国产成人午夜精品5599| 亚洲欧美日本韩国| 欧美日韩国产一区| 韩国视频一区二区| 中文字幕一区二区三区av| 欧美亚洲综合网| 捆绑变态av一区二区三区| 久久伊99综合婷婷久久伊| www.亚洲免费av| 亚洲午夜久久久| 精品国产免费一区二区三区四区| 国产91色综合久久免费分享| 亚洲免费毛片网站| 欧美一区二区三区四区视频| 国产精品一区二区果冻传媒| 亚洲人成电影网站色mp4| 欧美一区二区久久久| 国产.欧美.日韩| 亚洲 欧美综合在线网络| 欧美xxxxx裸体时装秀| 91一区在线观看| 日本欧美久久久久免费播放网| 久久久久88色偷偷免费| 欧美又粗又大又爽| 国产一区欧美一区| 亚洲一区在线电影| 国产精品婷婷午夜在线观看| 91精品久久久久久蜜臀| 成人av高清在线| 另类人妖一区二区av| 亚洲黄网站在线观看| 久久亚洲欧美国产精品乐播| 91久久免费观看| 成人免费视频免费观看| 日韩成人午夜电影| 亚洲乱码一区二区三区在线观看| 精品sm在线观看| 欧美久久久一区| 一本大道av伊人久久综合| 久久er99精品| 日本在线不卡视频| 亚洲一区二区三区自拍| 中文字幕一区二区三区在线播放| 日韩欧美国产精品一区| 欧美性感一区二区三区| 91免费观看视频在线| 丁香五精品蜜臀久久久久99网站 | 精品免费一区二区三区| 91久久精品国产91性色tv| 国产91精品一区二区麻豆网站| 麻豆精品一区二区综合av| 亚洲一区二区三区三| 亚洲免费av网站| 国产精品美日韩| 中文字幕av免费专区久久| 欧美精品一区二区三区高清aⅴ| 欧美日韩三级一区二区| 欧美在线一区二区三区| 一本大道久久a久久精品综合| av激情综合网| 不卡av在线免费观看| www.亚洲激情.com| av电影一区二区| 99久久精品免费看| 99精品国产99久久久久久白柏| 不卡免费追剧大全电视剧网站| 成人一区二区三区中文字幕| 国产成人福利片| zzijzzij亚洲日本少妇熟睡| 成人黄色片在线观看| a美女胸又www黄视频久久| 99在线视频精品| 色视频欧美一区二区三区| 欧美在线免费观看亚洲| 欧美日韩成人一区二区| 5566中文字幕一区二区电影| 91麻豆精品国产综合久久久久久 | 欧美日韩综合在线| 欧美人伦禁忌dvd放荡欲情| 欧美精选午夜久久久乱码6080| 欧美一区二区三级| 欧美mv日韩mv国产网站| 国产亚洲一区二区在线观看| 国产精品午夜春色av| 一区二区三区中文字幕在线观看| 亚洲综合色区另类av| 天天色天天爱天天射综合| 精品一区二区三区影院在线午夜| 成人综合激情网| 欧美三级电影网| 精品国精品国产尤物美女| 国产精品嫩草影院com| 亚洲一区二区欧美激情| 热久久久久久久| 粉嫩aⅴ一区二区三区四区| 91亚洲精品一区二区乱码| 欧美群妇大交群中文字幕| 久久精品人人做| 一区二区三区视频在线观看| 奇米色777欧美一区二区| 国产91清纯白嫩初高中在线观看| 欧美在线不卡视频| 久久色在线视频| 一区二区三区欧美激情| 精品在线一区二区| 91国产精品成人| 欧美成人猛片aaaaaaa| 亚洲欧美视频一区| 激情五月激情综合网| 欧美自拍丝袜亚洲| 中文字幕va一区二区三区| 首页亚洲欧美制服丝腿| 丁香五精品蜜臀久久久久99网站| 欧美放荡的少妇| 中文字幕色av一区二区三区| 蜜桃视频一区二区三区在线观看| 北条麻妃一区二区三区| 日韩精品中文字幕一区| 亚洲激情成人在线| 国产aⅴ精品一区二区三区色成熟| 欧美福利视频一区| 国产精品卡一卡二| 精油按摩中文字幕久久| 欧美高清hd18日本| 一区二区三区四区在线| 国产风韵犹存在线视精品| 欧美一卡在线观看| 亚洲大片一区二区三区| 成人福利在线看| 久久综合999| 久久国产福利国产秒拍| 337p亚洲精品色噜噜噜| 亚洲一区二区在线免费看| av午夜一区麻豆| 国产精品久久久久久亚洲毛片| 免费的成人av| 日韩亚洲欧美成人一区| 亚洲.国产.中文慕字在线| 欧美亚洲丝袜传媒另类| 亚洲综合久久av| 91国内精品野花午夜精品| 亚洲男人的天堂在线aⅴ视频| 岛国精品一区二区| 中文字幕欧美激情一区| 国产高清久久久| 国产亚洲1区2区3区| 国产成人在线视频播放|