我正在编写一个程序来找出哪个网络接口最适合连接到指定的目标地址。
现在,我可以通过netlink
套接字API获取路由表,但似乎没有网络掩码信息。我在所有rtnetlink
个项目中阅读了rtattr
的手册,没有网络掩码信息,只有RTA_DST
,RTA_SRC
,RTA_GATEWAY
...已定义。< / p>
那么,如何检查路由表中的网络掩码信息?就像我们在route -n
输出中看到的一样。
非常感谢。
答案 0 :(得分:5)
与RTA_DST
相关联的前缀长度位于rtm_dst_len
的{{1}}字段中,而不在rtmsg
中。 (我猜是因为它是一个固定大小的字段,与rtattr
不同,它的大小因家庭而异。)