從本質上講,我有兩個4字節的IP地址:匹配的目的地址,在C++中的轉發表項
u_int32_t daddr; // in the packet
u_int32_t entry; // in the forwarding table
我也有一個前綴與在轉發表項雲:
unsigned short prefix; // in forwarding table corresponding to entry
我需要根據前綴將daddr匹配到條目。我很確定這意味着什麼:如果前綴是23,那麼我必須將條目的前23位與daddr匹配。我真的不知道從哪裏開始,因爲我不知道如何匹配個別位。
我有一個轉發表,其中有很多條目,每個條目都有不同的前綴。我不知道如何匹配達到正確的條目..任何幫助將不勝感激。 我的daddr存儲在我從netinet ip.h文件獲得的標準ip頭文件中。
編輯:我找到了「最長」的比賽。所以我沒有比較條目,只檢查它們是否相等,我比較它們以確定有多少位是相同的。當所有的位都相同時,最好的匹配是顯而易見的。