IP 地址,你们一般用什么数据类型存储?

2022-09-20 10:29:30 +08:00
 woomly

我查网上资料,在数据库中存储 IP 地址,通常有使用 VARCHARUNSIGNED INT 两种方案,各有利弊。请问各位在项目中使用哪种方案存储 IP 地址字段?

4369 次点击
所在节点    数据库
30 条回复
msg7086
2022-09-20 15:15:20 +08:00
IPv4 存 int32 ,IPv6 用 binary(16)。
newmlp
2022-09-20 19:51:14 +08:00
当然 int ,需要显示的地方让前端自己转一下就行了
JohnBull
2022-09-20 19:56:38 +08:00
PostgreSQL 内置了 CIDR 类型,支持 v4 和 v6
ericls
2022-09-21 02:11:36 +08:00
看要解决什么问题
julyclyde
2022-09-21 08:52:59 +08:00
varchar 显然是错误的

如果没有特定的类型,应该用某种 uint32 保存 IPv4 地址
bthulu
2022-09-21 09:24:55 +08:00
varchar, 要相信现代数据库的查询能力
cheng6563
2022-09-21 09:34:00 +08:00
char(15)
并且 1.2.3.4 存成 001.002.003.004
nothingistrue
2022-09-21 09:37:20 +08:00
看业务需求,一般没有防火墙处理的话,VARCHAR 即可,因为你业务上就是把它当字符串用的。
RRRoger
2022-09-21 10:23:21 +08:00
postgres 有专门存储 ip 的字段
Junzhou
2022-09-21 11:30:11 +08:00
直接 long 就可以了,或者无符号 int ,存取的时候使用 mysql 运算函数转换。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/881486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX