在C#中将IPv6格式化为int并将其存储在SQL Server中
在IPv4
我一直在解析IP地址的字符串表示Int32
,并将其存储为INT
在SQL Server
。
现在,IPv6
我试图找出是否有对的字符串表示解析标准或接受的方式IPv6
在两个Int64
使用C#
?
人们又如何将这些值存储在SQL Server
-的两个字段中BIGINT
?
回答:
正如IPv4地址实际上是32位数字一样,IPv6地址实际上是128位数字。地址有不同的字符串表示形式,但是实际地址是数字,而不是字符串。
因此,您无需将IP地址转换为数字,而是将地址的字符串表示形式解析为实际地址。
甚至没有一个decimal
可以容纳128位数字,因此留下了三个明显的选择:
- 存储分为两个
bigint
字段的数值 - 将地址的字符串表示形式存储在
varchar
字段中 - 将数值存储在16字节
binary
字段中
这两种方法都没有将IPv4地址存储在中的方便int
,因此您必须考虑它们的局限性以及对地址的处理需求。
以上是 在C#中将IPv6格式化为int并将其存储在SQL Server中 的全部内容, 来源链接: utcz.com/qa/400740.html