Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can i match each /proc/net/tcp entry to each opened socket?

I'm trying to parse socket info from /proc/net/tcp and while I can identify some fields, such as memory addresses or send queue use, I can't find how each entry is bound to its socket descriptor. e.g., with this data:

1: 5922140A:E459 D5C43B45:0050 01 00000000:00000000 00:00000000 00000000  1000        0 507218 1 f6ab1300 57 3 12 4 -1  

I want to know which is the correspondant socket descriptor.

like image 572
Manuel Abeledo Avatar asked Jul 23 '10 15:07

Manuel Abeledo


1 Answers

Take the inode number (in this case, 507218). Each open file descriptor to that socket (there may be multiple file descriptors for the same socket) will appear as a link of the form:

/proc/<PID>/fd/<N> -> socket[507218]

(where <PID> is the process ID and <N> is the file descriptor).

like image 53
caf Avatar answered Sep 28 '22 05:09

caf