在c ++中以便携方式获取路由表

时间:2012-02-28 17:28:39

标签: c++ networking portability

我需要以便携方式获取机器的路由表。我正在使用C ++,如果有帮助,Boost库已经可用。

不调用外部命令,例如" route"因为它不便携,外部命令可能无法使用。

2 个答案:

答案 0 :(得分:5)

当然,调用route是不可取的,因为分叉和执行很少是这样的。

不幸的是,我可以告诉你[作为Net-SNMP项目的创始人,我们在C中报告许多平台的路由],没有平台独立的方式。您需要了解每个人如何存储信息以及如何访问信息。在linux中的EG,你可以从/ proc获得它。在其他操作系统中,您可以通过API调用获取它。你不太可能很高兴发现你想要的东西不存在。然后,您甚至会发现IPv4和IPv6之间可能存在差异的平台!

然而,您可以随意浏览Net-SNMP代码并查找在那里完成的所有方法。首先是agent/mibgroup/ip-forward-mib/data_access/agent/mibgroup/mibII/var_route.c

答案 1 :(得分:0)

您可以查看第三方可移植性库,例如libdnet(BSD许可证)。

https://code.google.com/p/libdnet/