为什么路由表中的路由项(通过 netlink 套接字获取)没有网络掩码信息?

发布于 2024-11-09 12:20:33 字数 323 浏览 0 评论 0原文

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

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

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

多谢。

I'm writing a program to find out which network interface is the best to connect to a specified target address.

Right now, I can get the route table via netlink socket APIs, but seems there is no netmask infos in it. I read the manual of rtnetlink, in all rtattr items, there is no netmask infos, just RTA_DST, RTA_SRC, RTA_GATEWAY... defined.

So, how to check out the netmask infos in route table? Just like we can see in route -n outputs.

Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤檠 2024-11-16 12:20:33

RTA_DST关联的前缀长度位于rtmsgrtm_dst_len字段中,而不是在rtattr中。 (我猜是因为它是一个固定大小的字段,与 RTA_DST 不同,RTA_DST 的大小因系列而异。)

The prefix length associated with RTA_DST is in the rtm_dst_len field of the rtmsg, not in an rtattr. (I guess because it's a fixed-size field, unlike RTA_DST, which varies in size depending on the family.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文