#!/bin/sh
# closing:1 syn_sent:0 established:1887 closewait:0 time_close:0 fin_wait1:28 lastack:4 fin_wait2:725 time_wait:25025 syn_recv:22 listen:14

LC_ALL=C ss -ant | awk '
BEGIN {
	m["ESTAB"] = "established";
	m["SYN-SENT"] = "syn_sent";
	m["SYN-RECV"] = "syn_recv";
	m["FIN-WAIT-1"] = "fin_wait1";
	m["FIN-WAIT-2"] = "fin_wait2";
	m["TIME-WAIT"] = "time_wait";
	m["UNCONN"] = "time_close";
	m["CLOSE-WAIT"] = "closewait";
	m["LAST-ACK"] = "lastack";
	m["LISTEN"] = "listen";
	m["CLOSING"] = "closing";
}

$1 ~ /^[A-Z0-9-]+$/ {
	k = m[$1];
	c[k]++;
	next;
}

END {
	for (i in m) {
		k = m[i];
		printf("%s:%d ", k, c[k]);
	}
}'
