mib.routes

来自「ftam等标准协议服务器和客户端的源代码。」· ROUTES 代码 · 共 113 行

ROUTES
113
字号
function rt_type(f) {    if (f in types)	return types[f];    return (f ? f : "unknown");}function rt_flags(f) {    s = "";    if (bit_and(f, 1))	s = (s "U");    if (bit_and(f, 2))	s = (s "G");    if (bit_and(f, 4))	s = (s "H");    if (bit_and(f, 8))	s = (s "R");    if (bit_and(f, 16))	s = (s "D");    if (bit_and(f, 32))	s = (s "M");    if (bit_and(f, 64))	s = (s "Do");    if (bit_and(f, 128))	s = (s "C");    if (bit_and(f, 256))	s = (s "X");    return s;}function do_stats() {    if (!hasunix) {	printf "routing statistics not implemented\n";	exit(1);    }    didone = 0;    for (i in unixRouteBadRedirects) {	didone = 1;	printf "routing:\n";	    printf "%9s bad routing redirects\n", unixRouteBadRedirects;	    printf "%9s dynamic created routes\n", unixRouteCreatedByRedirects;	    printf "%9s new gateways due to redirects\n", unixRouteModifiedByRedirects;	    printf "%9s destinations found unreachable\n", unixRouteLookupFails;	    printf "%9s uses of a wildcard route\n", unixRouteWildcardUses;    }    if (!didone && DIAGNOSTIC)	printf "routing statistics: %s\n\n", DIAGNOSTIC;}BEGIN {	hasunix = unixNetstat == 1;	if (sflag) {	    do_stats();	    exit(0);	}	types[1] = "Other";	types[2] = "Invalid";	types[3] = "Direct";	types[4] = "Remote";	printf "Routing tables\n";	printf "%-15s %-15s %-8s %-6s %-10s %s\n",		"Destination",		      "Gateway",			    hasunix ? "Flags" : "Type",				 "Refcnt",				      "Use",					   "Interface";	didone = 0;	for (i in ipRouteDest) {	    didone = 1;	    printf "%-15s %-15s %-8s %-6s %-10s %s (#%d)\n",		    ipRouteDest == "0.0.0.0" ? "default" : ipRouteDest,			  ipRouteNextHop,				hasunix ? rt_flags(unixIpRouteFlags[i]) \					: rt_type(ipRouteType),				     hasunix ? unixIpRouteRefCnt[i] : "",					  hasunix ? unixIpRouteUses[i] : "",						ifDescr[ipRouteIfIndex],						ipRouteIfIndex;	}	if (!didone && DIAGNOSTIC)	    printf "ipRoutingTable: %s\n", DIAGNOSTIC;	if (!oflag)	    exit(0);	didone = 0;	for (i in clnpRouteDest) {	    didone = 1;	    printf "NS+%-28s %-8s %-6s %-10s %s (#%d)\n",		    clnpRouteDest == "0" ? "default" : clnpRouteDest,				hasunix ? rt_flags(unixclnpRouteFlags[i]) \					: rt_type(clnpRouteType),				     hasunix ? unixclnpRouteRefCnt[i] : "",					  hasunix ? unixclnpRouteUses[i] : "",						ifDescr[clnpRouteIfIndex],						clnpRouteIfIndex;	    printf "   %-15s NS+%s\n",		       "",	clnpRouteNextHop;	}	if (!didone && DIAGNOSTIC)	    printf "clnpRoutingTable: %s\n", DIAGNOSTIC;      }

⌨️ 快捷键说明

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