【发布时间】:2023-04-10 15:28:01
【问题描述】:
基本上,我有两个 4 字节的 IP 地址:
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 匹配。老实说,我什至不知道从哪里开始,因为我不知道如何匹配各个位。
我有一个转发表,其中包含许多条目,每个条目都有不同的前缀。我不确定如何将 da 与正确的条目相匹配。任何帮助将不胜感激。 我的 daddr 存储在我从 netinet ip.h 文件中获得的标准 ip 标头中。
编辑:我找到了“最长”的匹配。所以我不是比较条目来只检查它们是否相等,而是比较它们以确定有多少位相同。最好的匹配显然是所有位都相同。
【问题讨论】:
标签: c++ network-programming ip-address forwarding