sock_masktop.c

来自「《unix网络编程第二卷》中的源代码」· C语言 代码 · 共 25 行

C
25
字号
#include	"unproute.h"char *sock_masktop(struct sockaddr *sa, socklen_t salen){	static char		str[INET6_ADDRSTRLEN];	unsigned char	*ptr = &sa->sa_data[2];	if (sa->sa_len == 0)		return("0.0.0.0");	else if (sa->sa_len == 5)		snprintf(str, sizeof(str), "%d.0.0.0", *ptr);	else if (sa->sa_len == 6)		snprintf(str, sizeof(str), "%d.%d.0.0", *ptr, *(ptr+1));	else if (sa->sa_len == 7)		snprintf(str, sizeof(str), "%d.%d.%d.0", *ptr, *(ptr+1), *(ptr+2));	else if (sa->sa_len == 8)		snprintf(str, sizeof(str), "%d.%d.%d.%d",				 *ptr, *(ptr+1), *(ptr+2), *(ptr+3));	else		snprintf(str, sizeof(str), "(unknown mask, len = %d, family = %d)",				 sa->sa_len, sa->sa_family);	return(str);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?