2011-05-21 22 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

相關問題