Mac OS X:内核扩展获得TCP连接的tcpcb结构如何?

我想提供一个用户空间函数,通过实现内核扩展来获取TCP连接统计信息。 从检查TCP源代码,我看到tcpcp结构包含这样的统计信息。 在给定来自用户空间的套接字句柄的情况下,如何通过内核扩展获取关联的tcpcb结构并将统计信息返回给用户空间?

直接回答问题:我相信你不能从kext获取这些信息而不使用一些私有头来获取所涉及的结构的内存布局。 如果/当Apple更改这些结构的布局时,这将会中断。

但是,看起来您并不真正关心kext方面并且很乐意从用户空间获取信息,那么您是否调查了TCPCTL_PCBLIST sysctl? 这为您提供了系统中TCP连接的CB,而xtcpcb64结构确实包含您所追求的字段。 尽管如此,这种机制可能不够精细。