Net2/usr/src/contrib/isode/snmp/gawk-2.11/s-gawk/mib.connections

function socket(t,a,p,	s1,s2) {
    s1 = a == "0.0.0.0" ? "*" : a;
    if (p == 0)
	s2 = "*";
    else
	if ((p, t) in services)
	    s2 = services[p, t];
	else
	    s2 = p;

    return (s1 "." s2);
}

function tt_type(f) {
    if (f in types)
	return types[f];

    return (f ? f : "unknown");
}

BEGIN {
	types[1]  = "CLOSED";
	types[2]  = "LISTEN";
	types[3]  = "SYN_SENT";
	types[4]  = "SYN_RCVD";
	types[5]  = "ESTABLISHED";
	types[6]  = "FIN_WAIT_1";
	types[7]  = "FIN_WAIT_2";
	types[8]  = "CLOSE_WAIT";
	types[9]  = "LAST_ACK";
	types[10] = "CLOSING";
	types[11] = "TIME_WAIT";

	services[7, "udp"] = "echo";
	services[9, "udp"] = "discard";
	services[11, "tcp"] = "systat";
	services[13, "tcp"] = "daytime";
	services[15, "tcp"] = "netstat";
	services[20, "tcp"] = "ftp-data";
	services[21, "tcp"] = "ftp";
	services[23, "tcp"] = "telnet";
	services[25, "tcp"] = "smtp";
	services[37, "tcp"] = "time";
	services[37, "udp"] = "time";
	services[42, "udp"] = "name";
	services[43, "tcp"] = "whois";
	services[53, "udp"] = "domain";
	services[53, "tcp"] = "domain";
	services[101, "tcp"] = "hostnames";
	services[102, "tcp"] = "tsap";
	services[109, "tcp"] = "pop";
	services[111, "udp"] = "sunrpc";
	services[111, "tcp"] = "sunrpc";
	services[69, "udp"] = "tftp";
	services[77, "tcp"] = "rje";
	services[79, "tcp"] = "finger";
	services[87, "tcp"] = "link";
	services[95, "tcp"] = "supdup";
	services[105, "tcp"] = "csnet-ns";
	services[117, "tcp"] = "uucp-path";
	services[119, "tcp"] = "untp";
	services[123, "tcp"] = "ntp";
	services[161, "udp"] = "snmp";
	services[162, "udp"] = "snmp-trap";
	services[199, "tcp"] = "smux";
	services[1524, "tcp"] = "ingreslock";
	services[512, "tcp"] = "exec";
	services[513, "tcp"] = "login";
	services[514, "tcp"] = "shell";
	services[515, "tcp"] = "printer";
	services[530, "tcp"] = "courier";
	services[512, "udp"] = "biff";
	services[513, "udp"] = "who";
	services[514, "udp"] = "syslog";
	services[517, "udp"] = "talk";
	services[520, "udp"] = "route";
	services[550, "udp"] = "new-rwho";
	services[560, "udp"] = "rmonitor";
	services[561, "udp"] = "monitor";

	printf "Active connections%s\n", aflag ? " (including servers)" : "";
	printf "%-5s %-6s %-6s  %-20s %-20s %s\n",
		"Proto",
		     "Recv-Q",
			  "Send-Q",
			       "Local Address",
				     "Foreign Address",
					   "(state)";

	hasunix = unixNetstat == 1;

	didone = 0;
	for (i in tcpConnState) {
	    didone = 1;

	    if (!aflag && tcpConnLocalAddress == "0.0.0.0")
		continue;

	    printf "%-5s %6s %6s  %-20s %-20s %s\n",
		    "tcp",
			 hasunix ? unixTcpConnRecvQ[i] : "",
			      hasunix ? unixTcpConnSendQ[i] : "",
				   socket("tcp",tcpConnLocalAddress,tcpConnLocalPort),
				         socket("tcp",tcpConnRemAddress,tcpConnRemPort),
					       tt_type(tcpConnState);
	}
	if (!didone && DIAGNOSTIC)
	    printf "tcpConnTable: %s\n", DIAGNOSTIC;

	didone = 0;
	for (i in udpLocalAddress) {
	    didone = 1;

	    if (!aflag && udpLocalAddress == "0.0.0.0")
		continue;

	    printf "%-5s %6s %6s  %-20s %-20s %s\n",
		    "udp",
			 hasunix ? unixUdpRecvQ[i] : "",
			      hasunix ? unixUdpSendQ[i] : "",
				   socket("udp",udpLocalAddress,udpLocalPort),
				         hasunix ? socket("udp",unixUdpRemAddress[i],unixUdpRemPort[i]) : "",
					       "";
	}
	if (!didone && DIAGNOSTIC)
	    printf "udpTable: %s\n", DIAGNOSTIC;
      }