gpt4 book ai didi

c - 内存 C 中的 IP 查找表

转载 作者:行者123 更新时间:2023-11-30 16:02:12 24 4
gpt4 key购买 nike

我目前正在尝试使用 libpcap 和各种 C 应用程序,并尝试完成以下任务。程序初始化后,我想从文件加载 IP 并将它们存储在内存中。当我收到一些要处理的数据包详细信息时,我想将 IP 与加载到内存中的 IP 集进行比较。

在 C 中实现此功能的最佳方法/数据结构是什么?我需要适应列表增长和高效匹配,所以我觉得简单的查找数组将是一个错误的解决方案。帮忙?

最佳答案

嗯,大概您永远不会在运行时删除 IP,而只是添加。如果列表没有变得很大,那么对其进行排序实际上不会有太大的好处。

鉴于这两个事实,我可能会将它们全部放入一个(大尺寸)数组中,并在需要时进行线性搜索。跟踪数组中数据的末尾位置,在那里添加新条目将是一件小事。

如果这真的太慢,你可以开发一个哈希表。当然,它需要根据 IP 映射的典型内容进行调整,以避免冲突(并进行开发和调试,因为 C 在标准中没有哈希值)。有点像 PITA,但应该是可行的。

我不会打扰任何中间的事情(大概使用二进制搜索进行查找)。如果你那么渴望速度,你不妨一路走下去。

关于c - 内存 C 中的 IP 查找表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com