【问题标题】:Why the route items in the route table(fetched via netlink socket) doesn't have netmask info?为什么路由表中的路由项(通过 netlink 套接字获取)没有网络掩码信息?
【发布时间】:2011-05-21 08:02:40
【问题描述】:

我正在编写一个程序来找出哪个网络接口最适合连接到指定的目标地址。

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

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

非常感谢。

【问题讨论】:

  • 你能分享你的代码吗:sachinites@gmail.com

标签: linux sockets routes netlink


【解决方案1】:

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

【讨论】:

  • +1 但我猜还有其他固定长度字段,例如 RTA_METRICS 等。这个选择肯定有另一个原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
相关资源
最近更新 更多