Além de ss
e netstat
, atualmente não conheço outras ferramentas que eu recomende.
Para saber como obter essa informação:
Se você man netstat
, você pode ver na seção FILES
alguns arquivos listados que o netstat usa para coletar suas informações.
Entre eles, há /proc/net/tcp
e /proc/net/udp
.
Se você cat /proc/net/tcp
você pode ver várias informações sobre conexões tcp no seu sistema.
Um exemplo de saída seria
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 0101007F:0035 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 11190 1 0000000000000 000 100 0 0 10 0
1: 8700A8C0:91FC 0F02000A:15B3 01 00000000:00000000 02:00000AF6 00000000 1000 0 5565254 2 00000000000 00000 46 4 13 10 -1
rem_address
aqui é o IP que você está procurando. Não sei muito sobre isso, mas acho que st
fornece informações sobre o estado atual. 0A
deve significar LISTEN
, 01
significa ESTABLISHED
.
Decodificar local_address
ou rem_address
é bastante fácil, 8700A8C0:8F76
, por exemplo:
Format: hex(rev_ip):hex(port)
87 -> 135
00 -> 0
A8 -> 168
C0 -> 192
:8F76 -> 36726
=> 192.168.0.135, Port 36726
Mais informações sobre o diretório /proc/net
são aqui .
Mais informações sobre os dados apresentados são aqui .
Um thread SO relacionado também é aqui .