gpt4 book ai didi

c# - 在 C# 中将 IPv6 格式化为 int 并将其存储在 SQL Server 中

转载 作者:IT王子 更新时间:2023-10-29 04:33:47 24 4
gpt4 key购买 nike

IPv4 下,我一直在将 IP 地址的字符串表示形式解析为 Int32 并将它们作为 INT 存储在 SQL Server 中

现在,对于 IPv6,我试图找出是否有一种标准的或可接受的方法来将 IPv6 的字符串表示解析为两个 Int64 使用 C#?

另外,人们如何将这些值存储在 SQL Server 中 - 作为 BIGINT 的两个字段?

最佳答案

正如 IPv4 地址实际上是一个 32 位数字,IPv6 地址实际上是一个 128 位数字。地址有不同的字符串表示形式,但实际地址是数字,而不是字符串。

因此,您不会将 IP 地址转换为数字,而是将地址的字符串表示形式解析为实际地址。

即使是 decimal 也不能容纳 128 位数字,因此剩下三个明显的选择:

  • 存储分成两个bigint字段的数值
  • 将地址的字符串表示形式存储在 varchar 字段中
  • 将数值存储在 16 字节的二进制字段中

两者都不如将 IPv4 地址存储在 int 中方便,因此您必须考虑它们对您需要对地址执行的操作的限制。

关于c# - 在 C# 中将 IPv6 格式化为 int 并将其存储在 SQL Server 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/774536/

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