在Linux中使用C获取inode的远程IP

问题描述 投票:0回答:1

例如,我的/ proc / net / tcp包含

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode                                                                         
   2: 0900000A:91E4 0101B85D:0050 01 00000000:00000000 02:00000039 00000000  1000        0 75205 2 0000000000000000 26 4 30 10 -1 

所以inode = 75205与IP 93.184.1.1进行通信。

Ho可以通过C代码获得此ip(远程地址)?

我知道我可以按空间拆分并手动对其进行解析,但这看起来像个坏主意,所以有什么聪明的方法吗?

c linux sockets tcp inode
1个回答
0
投票

不幸的是,没有其他方法可以从用户空间程序获取此类信息。只有内核知道这一点,并且它确切地提供了该文件以使信息可用于用户空间。

如果您使用take a look at the source code之类的工具[aka],也将在ss中查询文件,以获取有关打开的套接字的信息。

© www.soinside.com 2019 - 2024. All rights reserved.