这个问题已经在这里有了答案 :
在Oracle中表示IPv4 /
IPv6地址
(7个答案)
8年前关闭。
我创建了一个表来存储IP地址。
CREATE TABLE ipdetails( ip_address DECIMAL(16,4) NOT NULL, vlan_id varchar(50) );
但是当我尝试插入表中时,它给了我一个错误:
INSERT INTO ipdetails VALUES (192.169.165.128, 'Sample1')
无论如何,我可以在SQL表中存储一个带有很多小数位的数字,如果是的话,我应该使用什么数据类型?请指教。
提前致谢!
您有几种选择:
问题内容: 这个问题已经在这里有了答案 : 在SQL Server中存储IP地址的数据类型 (10个答案) 3年前关闭。 在MySQL中存储和检索IP地址的最有效方法是什么?现在我正在做: 其中ip是一个字段。 有一个更好的方法吗? 问题答案: 对于IPv4地址,您可能需要将其存储为,并使用和函数从其数字值返回IP地址,反之亦然。 例:
问题内容: 可以同时容纳IPv4和IPv6地址的一种数据类型。我想存储IP地址以限制一个人可以在我的网站上通过他/她的机器进行配置的数量。 问题答案: IPv4地址使用32位(4字节),IPv6地址使用128位(16字节)。因此,您可以将它们的二进制表示形式存储在或字段中。
问题内容: 这星期我们在办公室进行了一场健康的辩论。我们正在创建一个Db来存储代理信息,在大多数情况下,除了应该如何存储IP之外,我们还制定了模式。一个阵营想要使用4个smallint,每个八位位组一个,另一个希望使用1个大int INET_ATON。 这些表将非常庞大,因此性能至关重要。我处于中间位置,因为我通常在世界中使用MS SQL和4个小整数。我对这种类型的IP存储量没有足够的经验。 我们
问题内容: 我有很多不同提供商的IP范围。例如 我将此IP转换为int32: 我的任务: 通过用户IP地址查找提供者名称(例如192.168.2.20(3232236052)) 在MySQL中很简单: Redis怎么做? 问题答案: 这取决于您是否认为您的IP范围可以重叠。如果不是,则解决方案非常简单: 使用哈希的集合来存储提供者数据 使用zset索引范围的最大值 检索最大值大于IP的(唯一)范围
问题内容: 正如“具有ipv6功能的inet_aton和inet_ntoa功能所需 ”中所要求的那样,当前没有用于存储IPv6地址的MySQL函数。建议用于存储/插入的数据类型/功能是什么?(我不打算将它们存储为字符串)。我也不想将IPv6地址分为2个INT。 问题答案: 怎么样: 那应该足够有效。 如该错误报告中所述,当前在MySQL服务器中没有将文本IPv6地址从二进制转换为二进制的功能。您需
问题内容: 我有一段代码看起来像这样: 和某种IP,但是像这样: 这还不够好,因为无法识别99比102或204小。我希望输出如下: 我找到了,但是我不确定如何在我的代码中实现它,或者因为使用字典,所以甚至不可能实现它。我在这里有什么选择?谢谢.. 问题答案: 您可以使用自定义函数返回字符串的可排序表示形式: 该函数采用IP地址字符串之类,然后将其转换为整数元组。Python内置支持按字典顺序对元组