gpt4 book ai didi

mysql - django + mysql,存储 ip 地址,包括范围

转载 作者:行者123 更新时间:2023-11-28 23:21:26 34 4
gpt4 key购买 nike

我需要一种有效的方式来存储 IP 地址。
我想查询的是 IP 是否在表中(或在范围内)。
我需要存储范围,例如,

192.168.0.1 - 192.168.1.255  

还有个人 IP。

既然记录很多,我觉得一个一个存起来有点浪费。但如果那是最好的,我会去做。Django 确实有 GenericIPAddressField字段,但它不存储范围。

那么我最好的解决方案是什么?

最佳答案

您有两种选择,都涉及使用两列。

方案一,存储起始IP结束IP

   class IPmodel(models.Model):
start_ip = models.GenericIPAddressField()
end_ip = models.GenericIPAddressField()

选项2,存储IP和网络掩码

   class IPmodel(models.Model):
start_ip = models.GenericIPAddressField()
mask = models.IntegerField()

如果您使用选项 1,您的代码可能如下所示

IPmodel.objects.create(start_ip='192.168.1.0',end_ip='192.168.1.255')
IPmodel.objects.filter(end_ip__gt='192.168.1.10').filter(start_ip__lt='192.168.1.10')

如果您使用选项 2,则需要使用 F 函数和标准网络地址计算来进行过滤。

关于mysql - django + mysql,存储 ip 地址,包括范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41427188/

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