c++ - C 中的 ip 地址搜索算法或库

标签 c++ c linux network-programming ip

我有一个网络应用程序正在制作基于 ip_address 的防火墙。我在我的应用程序中找到客户端的源 ip,然后,如果客户端的 ip 在我的配置文件中的 ips 的子网中,那么我拒绝或接受该 ip。

在配置文件中,可能会有不同的ip格式。它可以是单个 ip,如 192.168.0.1 或子网 192.168.0.1/24 或间隔,如 192.168.0.1-192.168.0.37 .这些 ip 地址是从配置文件中读取的,如果客户端 ip 地址在其中之一,则采取操作。

它是在来自 conf 文件的 ips 中搜索客户端 ip。python 中有一些算法用于这些。但是是否有用于此工作的 C 或 c++ 库。它将解析这些格式的 ips 和搜索客户端?

最佳答案

is there a C or c++ library for this job?

我不知道。

但如果我必须编写这样的库,那么我会使用整数(IPv4 为 32 位)。排序和检查将更快。范围可以用 64 位值寻址。

相比之下,使用字符串会非常慢。

关于c++ - C 中的 ip 地址搜索算法或库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10121781/

相关文章:

c - 为什么 ~0xF 在 32 位机器上等于 0xFFFFFFF0?

linux - 发送邮件时主机名查找失败

c - 在 Linux 上确定陈旧的 Samba 安装的最快方法

linux 脚本在 2011 年 11 月 6 日结束,但在 2011 年 11 月 7 日不结束(循环日期)

linux - C++ 生成文件安装 : start program at boot and reboot

c++ - 初始化程序, union 的特定成员

c++ - glBuffer 使用一种数据样式而不使用另一种样式,为什么?

C++:简单的运算符优先级问题还是其他?

c++ - 参数包构造函数在类模板中隐藏用户定义的转换

c - 错误 : incomplete type is not allowed