我正在寻找 Solaris ifconfig(1M)命令的编程接口。
显然 Linux 有getifaddrs(3)命令,但据我所知,这还没有移植到 Solaris。
除了尝试使用上面链接中的代码之外,有没有办法在不分叉系统命令和解析输出的情况下确定ifconfig(1M)类型的数据(网络接口存在、状态等)?
我正在寻找 Solaris ifconfig(1M)命令的编程接口。
显然 Linux 有getifaddrs(3)命令,但据我所知,这还没有移植到 Solaris。
除了尝试使用上面链接中的代码之外,有没有办法在不分叉系统命令和解析输出的情况下确定ifconfig(1M)类型的数据(网络接口存在、状态等)?
我在这里有一个实现,仅基于 IPv4SIOCGIFCONF
ioctl()
和 IP 系列不可知版本,使用SIOCGLIFCONF
:
http://code.google.com/p/openpgm/source/browse/trunk/openpgm/pgm/getifaddrs.c
在 SPARC/Solaris 10 和 x86/OpenSolaris 2008.11 和 2009.06 上测试,LGPL 2.1 许可证。
getifaddrs() 最近已集成到未来 OpenSolaris 和 Solaris 版本的源代码中,但这无助于您的代码在当前版本上运行:
在那之前,您将需要使用SIOCGLIFCONF
ioctl,您应该在开源代码中找到很多示例,包括您发布的链接。
真正的男人使用ioctl
;)
看看if(7P)。