有没有做过IPV6存储到数据库的?

hyrongg 2010-04-12 01:37:15
以前IPV4,直接存IP和IP NUMBER,查询IP范围的时候,用IPNUM BETWEEN IPNUM1 AND IPNUM2,
现在如果用IPV6,转换成NUMBER,SQL SERVER存储不了,即使用VARCHAR的格式存储IPV6 IPNUMBER
,查询的时候,SQL SERVER又不支持这么大的NUMBER,如何处理?
...全文
367 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Garnett_KG 2010-04-12
  • 打赏
  • 举报
回复
试试 varbinary(128)?
hyrongg 2010-04-12
  • 打赏
  • 举报
回复
2^128
select power(2,128)

Msg 232, Level 16, State 3, Line 1
Arithmetic overflow error for type int, value = 340282366920938460000000000000000000000.000000.
hyrongg 2010-04-12
  • 打赏
  • 举报
回复
128bit,Varchar肯定可以存储,关键IPTONUM变成128 BIT,SQL SERVER没有这么长的数字类型,
如果用VARCHAR存储,又不可以用类似查询:
IPNUM>=IPNUM1 AND IPNUM<=IPNUM2
有没有相关经验的兄弟?
obuntu 2010-04-12
  • 打赏
  • 举报
回复
存IP,可以考虑把IP截断存储呢。
--小F-- 2010-04-12
  • 打赏
  • 举报
回复
2005以上用varchar(max)
可以存储2G
ws_hgo 2010-04-12
  • 打赏
  • 举报
回复
IPV6用的是什么类型啊?
SQL77 2010-04-12
  • 打赏
  • 举报
回复
NUMBER

bigint 都不能存储?你数字多大?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧