如何根据fd找到socket的inode
今天看到这个帖子,但是用ruby来做的,根本不知所云
我看到网上有这样的描述
当你open 一个socket的时候,系统会返回一个文件描述符fd,如何找到其对应的fd呢?我们可以使用“netstat -tunp”查看在文件同录中打开的tcp以及udp连接的进程以及本地和远程的IP地址:
# netstat -taunp
Active Internet connections (only servers)
Proto Recv-QSend-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0. O . 0 . 0 :22 0.0.0.0 : * LISTEN 4024/sshd
......
tcp 0 0 :::22 : ::* LISTEN 4024/sshd
sshd所对应的PID是4024,然后在/proc目录下通过find命令就可以找到相应的fd。
# find /proc 2>/dev/null I grep "/4024/fd/1"
/proc/4024/task/4024/fd/1
/proc/4024/fd/1
但是找到fd之后,如何找到socket的inode,并知道这个tcp连接的建立时间等信息,不知道怎么做
今天看到这个帖子,但是用ruby来做的,根本不知所云
我看到网上有这样的描述
当你open 一个socket的时候,系统会返回一个文件描述符fd,如何找到其对应的fd呢?我们可以使用“netstat -tunp”查看在文件同录中打开的tcp以及udp连接的进程以及本地和远程的IP地址:
# netstat -taunp
Active Internet connections (only servers)
Proto Recv-QSend-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0. O . 0 . 0 :22 0.0.0.0 : * LISTEN 4024/sshd
......
tcp 0 0 :::22 : ::* LISTEN 4024/sshd
sshd所对应的PID是4024,然后在/proc目录下通过find命令就可以找到相应的fd。
# find /proc 2>/dev/null I grep "/4024/fd/1"
/proc/4024/task/4024/fd/1
/proc/4024/fd/1
但是找到fd之后,如何找到socket的inode,并知道这个tcp连接的建立时间等信息,不知道怎么做
编辑回复