如何将 tcp_diag 与 C++ 一起使用?
我已经用谷歌搜索了所有地方,但我仍然不知所措。 tcp_diag 应该取代 /proc/net/tcp,但我找不到关于如何使用它的文档。请告诉我如何 #include 它,以及它有哪些方法、类和函数。谢谢!
I've googled this all over the place, and I'm still at a loss. tcp_diag is supposed to replace /proc/net/tcp, but I can't find a shred of documentation on how to use it. Please tell me how to #include it, and what methods, classes and functions it has. Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您创建一个具有域 AF_NETLINK 和协议 NETLINK_INET_DIAG 的 DGRAM 套接字。然后你使用netlink协议与内核进行通信并获取你需要的信息。
进一步阅读:
You create a DGRAM socket with domain AF_NETLINK and protocol NETLINK_INET_DIAG. Then you use the netlink protocol to communicate with the kernel and get the information you need.
Further reading:
tcp_diag 内核模块不提供要调用的 C 或 C++ 函数。它通过使某些特殊“文件”(如 /proc/net/tcp)存在来提供其接口。您可以通过将该文件作为普通文件读取,或者使用
ss
或较旧的netstat
等可执行工具来直接获取该信息。The tcp_diag kernel module does not supply C or C++ functions to call. It provides its interface by causing certain special "files" like /proc/net/tcp to exist. You can get that information directly by reading that file as an ordinary file, or with an executable tool such as
ss
or the oldernetstat
.