2011-05-21 19 views
1

我正在编写一个程序,以找出哪个网络接口是最好的连接到指定的目标地址。为什么路由表中的路由项(通过netlink套接字获取)没有网络掩码信息?

现在,我可以通过netlink套接字API获取路由表,但似乎没有网络掩码信息。我阅读rtnetlink的手册,在所有rtattr项目中,没有网络掩码信息,只是RTA_DST,RTA_SRC,RTA_GATEWAY ...定义。

那么,如何查看路由表中的网络掩码信息?就像我们可以在route -n输出中看到的一样。

非常感谢。

+0

你能分享你的代码:[email protected] – 2016-05-26 19:22:38

回答

3

RTA_DST相关联的前缀长度是在rtmsgrtm_dst_len字段,而不是在一个rtattr。 (我猜是因为它是一个固定大小的字段,不像RTA_DST,根据家族大小的不同而不同)。

+0

+1但我想还有其他固定长度的字段如RTA_METRICS等。这种选择必须有另一个原因。 – JuliandotNut 2014-08-21 23:13:04

相关问题