例如,我的/ 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(远程地址)?
我知道我可以按空间拆分并手动对其进行解析,但这看起来像个坏主意,所以有什么聪明的方法吗?
不幸的是,没有其他方法可以从用户空间程序获取此类信息。只有内核知道这一点,并且它确切地提供了该文件以使信息可用于用户空间。
如果您使用take a look at the source code之类的工具[aka],也将在ss
中查询文件,以获取有关打开的套接字的信息。