如何使用C ++在Solaris中获取活动端口信息(重新创建`netstat命令`)?

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

我想使用C ++重新创建netstat命令以获取所有活动端口信息(特别是netstat -f <unix/inet/inet6> -u)。我在Windows,Linux和macOS上做过这个。在我认为与Solaris最相似的Linux上,我解析了/ proc / net / tcp等来获取这些信息。 Solaris中不存在此文件,我找不到任何类似的文件。我无法弄清楚Solaris上的netstat到底是为了获取它的信息。

man netstat在底部说“netstat实用程序通过打开/ dev / tcp并发出查询从系统获取TCP统计信息”。 /dev/tcp是一个sym link tp devices/pseudo/tcp@0:tcp,我不太确定这意味着什么,或者如何打开和查询它。

Solaris的netstat使用哪些函数/头文件/文件?引擎盖下做了什么?

我已经找到了它的源代码,但似乎找不到除死链接或重定向到Oracle主页的链接之外的任何内容。这个源代码的工作链接将回答我的问题

c++ networking port solaris netstat
1个回答
1
投票

Solaris /proc/ procfs具有进程信息。没有别的,或者没有别的。 Linux将其扩展为包括各种系统信息,而不仅仅是流程。

你可以随时做ioctl()/dev/tcp,以获取你的信息。更好的是,您应该能够使用SMF(服务管理框架)查询某些网络服务的属性以获取您的信息(键入svcs以获取服务列表)

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