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

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

?? inet_ntop.c

?? MPEG-4編解碼的實現(包括MPEG4視音頻編解碼)
?? C
字號:
/* This is from the BIND 4.9.4 release, modified to compile by itself */

/* Copyright (c) 1996 by Internet Software Consortium.
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
 * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 */

#ifndef HAVE_INET_NTOP
#include "config_unix.h"
#include "config_win32.h"
#include "inet_ntop.h"

#define	IN6ADDRSZ	16
#define	INT16SZ		 2

#ifndef	AF_INET6
#define	AF_INET6	AF_MAX+1	/* just to let this compile */
#endif

/*
 * WARNING: Don't even consider trying to compile this on a system where
 * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
 */

static const char *inet_ntop4(const u_char *src, char *dst, size_t size);
static const char *inet_ntop6(const u_char *src, char *dst, size_t size);

/* char *
 * inet_ntop(af, src, dst, size)
 *	convert a network format address to presentation format.
 * return:
 *	pointer to presentation format address (`dst'), or NULL (see errno).
 * author:
 *	Paul Vixie, 1996.
 */
const char *
inet_ntop(af, src, dst, size)
	int af;
	const void *src;
	char *dst;
	size_t size;
{
	switch (af) {
	case AF_INET:
		return (inet_ntop4(src, dst, size));
	case AF_INET6:
		return (inet_ntop6(src, dst, size));
	default:
		errno = EAFNOSUPPORT;
		return (NULL);
	}
	/* NOTREACHED */
}

/* const char *
 * inet_ntop4(src, dst, size)
 *	format an IPv4 address, more or less like inet_ntoa()
 * return:
 *	`dst' (as a const)
 * notes:
 *	(1) uses no statics
 *	(2) takes a u_char* not an in_addr as input
 * author:
 *	Paul Vixie, 1996.
 */
static const char *
inet_ntop4(src, dst, size)
	const u_char *src;
	char *dst;
	size_t size;
{
	static const char fmt[] = "%u.%u.%u.%u";
	char tmp[sizeof "255.255.255.255"];

	sprintf(tmp, fmt, src[0], src[1], src[2], src[3]);
	if ((size_t)strlen(tmp) > size) {
		errno = ENOSPC;
		return (NULL);
	}
	strcpy(dst, tmp);
	return (dst);
}

/* const char *
 * inet_ntop6(src, dst, size)
 *	convert IPv6 binary address into presentation (printable) format
 * author:
 *	Paul Vixie, 1996.
 */
static const char *
inet_ntop6(src, dst, size)
	const u_char *src;
	char *dst;
	size_t size;
{
	/*
	 * Note that int32_t and int16_t need only be "at least" large enough
	 * to contain a value of the specified size.  On some systems, like
	 * Crays, there is no such thing as an integer variable with 16 bits.
	 * Keep this in mind if you think this function should have been coded
	 * to use pointer overlays.  All the world's not a VAX.
	 */
	char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp;
	struct { int base, len; } best, cur;
	uint32_t words[IN6ADDRSZ / INT16SZ];
	int i;

	/*
	 * Preprocess:
	 *	Copy the input (bytewise) array into a wordwise array.
	 *	Find the longest run of 0x00's in src[] for :: shorthanding.
	 */
	memset(words, 0, sizeof words);
	for (i = 0; i < IN6ADDRSZ; i++)
		words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
	best.base = -1;
	cur.base = -1;
	for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) {
		if (words[i] == 0) {
			if (cur.base == -1)
				cur.base = i, cur.len = 1;
			else
				cur.len++;
		} else {
			if (cur.base != -1) {
				if (best.base == -1 || cur.len > best.len)
					best = cur;
				cur.base = -1;
			}
		}
	}
	if (cur.base != -1) {
		if (best.base == -1 || cur.len > best.len)
			best = cur;
	}
	if (best.base != -1 && best.len < 2)
		best.base = -1;

	/*
	 * Format the result.
	 */
	tp = tmp;
	for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) {
		/* Are we inside the best run of 0x00's? */
		if (best.base != -1 && i >= best.base &&
		    i < (best.base + best.len)) {
			if (i == best.base)
				*tp++ = ':';
			continue;
		}
		/* Are we following an initial run of 0x00s or any real hex? */
		if (i != 0)
			*tp++ = ':';
		/* Is this address an encapsulated IPv4? */
		if (i == 6 && best.base == 0 &&
		    (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) {
			if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp)))
				return (NULL);
			tp += strlen(tp);
			break;
		}
		sprintf(tp, "%x", words[i]);
		tp += strlen(tp);
	}
	/* Was it a trailing run of 0x00's? */
	if (best.base != -1 && (best.base + best.len) == (IN6ADDRSZ / INT16SZ))
		*tp++ = ':';
	*tp++ = '\0';

	/*
	 * Check for overflow, copy, and we're done.
	 */
	if ((size_t) (tp - tmp) > size) {
		errno = ENOSPC;
		return (NULL);
	}
	strcpy(dst, tmp);
	return (dst);
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人网| 97aⅴ精品视频一二三区| 欧美日韩aaa| 亚洲成人免费观看| 欧美一区二区视频观看视频| 日本不卡视频一二三区| 日韩女优电影在线观看| 国产精品综合一区二区三区| 国产欧美日韩在线观看| 99re这里都是精品| 亚洲va韩国va欧美va精品| 日韩一级在线观看| 国产美女精品一区二区三区| 国产拍揄自揄精品视频麻豆| 97久久人人超碰| 亚洲大片在线观看| 欧美xxxxx裸体时装秀| 国产成人aaa| 一区二区三区在线观看网站| 欧美年轻男男videosbes| 精品一区二区三区不卡| 欧美极品aⅴ影院| 在线视频你懂得一区二区三区| 日韩制服丝袜先锋影音| 26uuu欧美日本| 在线观看av一区二区| 美女视频黄免费的久久| 国产精品伦理一区二区| 欧美亚洲图片小说| 国产一区在线观看视频| 亚洲精品国产高清久久伦理二区 | 国产主播一区二区| 亚洲色图另类专区| 欧美高清视频www夜色资源网| 狠狠狠色丁香婷婷综合久久五月| 国产精品欧美久久久久一区二区| 欧美日韩综合在线| 成人黄色软件下载| 日韩精品欧美精品| 最新欧美精品一区二区三区| 日韩一区二区视频在线观看| 成人一区二区三区在线观看| 偷拍与自拍一区| 亚洲天堂免费看| 欧美精品一区二区高清在线观看| 色久优优欧美色久优优| 国产成人在线影院| 日产国产高清一区二区三区| 中文字幕精品一区二区三区精品| 欧美久久久久久蜜桃| 97久久精品人人爽人人爽蜜臀| 久久超碰97人人做人人爱| 亚洲综合免费观看高清在线观看| 久久久久久黄色| 91精品国产一区二区人妖| 色悠悠久久综合| 高清shemale亚洲人妖| 捆绑紧缚一区二区三区视频| 亚洲国产色一区| 亚洲精品视频在线看| 国产偷国产偷精品高清尤物| 日本一区二区三区电影| 91精品国产综合久久国产大片 | 三级欧美韩日大片在线看| 国产精品久久久久久亚洲毛片| 欧美不卡一区二区三区| 91精品国产综合久久精品图片| 在线观看一区日韩| 91婷婷韩国欧美一区二区| 成人av小说网| 成人18精品视频| 韩国精品一区二区| 国产美女精品在线| 国产精品一区二区91| 国产麻豆成人精品| 韩国精品主播一区二区在线观看 | 欧美电影免费提供在线观看| 欧美夫妻性生活| 欧美日韩一级片在线观看| 欧美日韩久久不卡| 777精品伊人久久久久大香线蕉| 欧洲av一区二区嗯嗯嗯啊| 一本高清dvd不卡在线观看| 95精品视频在线| 91麻豆精品在线观看| 91免费看视频| 欧美日韩精品三区| 7777精品伊人久久久大香线蕉完整版 | 欧美国产一区二区| 一区免费观看视频| 亚洲精品国产精品乱码不99| 亚洲一级电影视频| 日韩在线一区二区三区| 久久69国产一区二区蜜臀| 国产酒店精品激情| 91在线播放网址| 欧美日韩黄色一区二区| 欧美电影免费观看高清完整版在 | 亚洲午夜视频在线| 天天影视涩香欲综合网 | 国产精品―色哟哟| 国产精品家庭影院| 亚洲一区二区三区四区在线观看 | 色婷婷一区二区三区四区| 在线免费观看日韩欧美| 欧美日韩一级片在线观看| 日韩精品一区在线观看| 国产欧美一区二区精品忘忧草| 亚洲丝袜自拍清纯另类| 首页亚洲欧美制服丝腿| 国产成人精品一区二| 91九色02白丝porn| 精品国产一区二区三区久久久蜜月 | 91.xcao| 国产日韩av一区二区| 亚洲精品水蜜桃| 另类综合日韩欧美亚洲| 成人蜜臀av电影| 欧美一区二区三区四区视频| 国产精品久久夜| 蜜臀av性久久久久蜜臀aⅴ流畅| www.综合网.com| 日韩一区二区精品在线观看| 国产精品成人一区二区艾草| 免费人成精品欧美精品| 99久久国产综合精品女不卡| 日韩欧美一级精品久久| 一区二区三区丝袜| 国产精品一区一区三区| 欧美区视频在线观看| 中文字幕精品一区二区三区精品 | 亚洲欧美日韩国产手机在线| 麻豆专区一区二区三区四区五区| 99这里都是精品| 精品国产凹凸成av人网站| 亚洲午夜在线视频| 成人av影院在线| xvideos.蜜桃一区二区| 舔着乳尖日韩一区| 色婷婷香蕉在线一区二区| 久久精品日韩一区二区三区| 免费在线看成人av| 欧美性生活大片视频| 国产精品蜜臀在线观看| 波多野结衣中文一区| 日韩一区二区三区在线观看| 亚洲男人的天堂一区二区| 丁香另类激情小说| 国产亚洲精品7777| 激情综合网av| 日韩欧美在线影院| 婷婷综合另类小说色区| 色久优优欧美色久优优| 成人欧美一区二区三区1314| 国产传媒欧美日韩成人| 精品国产乱码久久久久久图片| 日韩国产精品久久| 欧美怡红院视频| 一区二区三区在线视频免费观看| 97se亚洲国产综合自在线| 国产精品网站导航| 国产成人精品1024| 中文一区二区在线观看| 国产精品影视网| 久久精品无码一区二区三区| 国产酒店精品激情| 久久精品视频网| 高清久久久久久| 亚洲欧美一区二区在线观看| 成人免费黄色在线| 中文字幕免费一区| 99精品久久久久久| 亚洲毛片av在线| 欧美日韩在线三区| 婷婷久久综合九色国产成人| 777亚洲妇女| 麻豆精品精品国产自在97香蕉| 日韩亚洲欧美一区二区三区| 精一区二区三区| 国产日韩欧美不卡在线| 99久久er热在这里只有精品15| 中文字幕在线一区二区三区| 91丨九色丨黑人外教| 亚洲精品乱码久久久久久| 欧美性大战久久| 蜜桃传媒麻豆第一区在线观看| 欧美mv日韩mv国产网站app| 国产精品99久久久久久有的能看| 国产免费观看久久| 欧美影院精品一区| 久久国产乱子精品免费女| 久久丝袜美腿综合| 色综合久久综合网欧美综合网| 一区二区三区成人| 欧美一级二级三级蜜桃| 国产毛片精品视频| 一区二区三区在线高清| 91麻豆精品国产91久久久久久久久| 久久精品国产精品青草| 国产精品国产三级国产aⅴ中文|