lsof
deve fazer o trabalho. Peça para dar a você uma saída analisável por máquina com a opção -F
.
lsof -n -i @${hostname}:${port} -F nT | grep '^TST=ESTABLISHED$'
Se precisar de mais informações:
lsof -n -i -F nT | awk '
function host_port(s, a) {
match(s, /:[^:]*$/);
a["host"] = substr(s, 1, RSTART-1);
a["port"] = substr(s, RSTART+1);
}
sub(/^p/,"") {pid = $0}
sub(/^n/,"") {
split($0, endpoints, "->");
host_port(endpoints[1], from);
host_port(endpoints[2], to);
}
/^TST=ESTABLISHED$/ {
print "Established from", from["host"] ":" from["port"],
"to", to["host"] ":" to["port"]
}
'