我正在寻找一个编程接口,用于 Solaris ifconfig(1M) 命令。
显然 Linux 有 getifaddrs(3) 命令,但据我所知,这个命令还没有被移植到 Solaris。
除了尝试使用上面的链接中的代码之外,是否有其他方法可以确定ifconfig(1M)类型的数据(网络接口存在、状态等),而不需要分叉系统命令并解析输出?
我正在寻找一个编程接口,用于 Solaris ifconfig(1M) 命令。
显然 Linux 有 getifaddrs(3) 命令,但据我所知,这个命令还没有被移植到 Solaris。
除了尝试使用上面的链接中的代码之外,是否有其他方法可以确定ifconfig(1M)类型的数据(网络接口存在、状态等),而不需要分叉系统命令并解析输出?
getifaddrs()最近已经集成到未来的OpenSolaris和Solaris版本的源代码中,但这并不能帮助您的代码在当前版本上运行:
在那之前,您需要使用SIOCGLIFCONF
ioctls,您可以在开源代码中找到许多示例,包括您发布的链接。
SIOCGIFCONF
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()
现在可用于Solaris 11及以后版本(当我在2010年写上述内容时,它还在未来,但在2011年发布了)。 - alanc