要包含 ipv4 和 ipv6,网上查了很多人建议 ipv4 用 php 的 ip2long 存成整数型,但是 ipv6 呢?怎样设计一个类型,能同时存 ipv4 和 ipv6,方便极速检索
要包含 ipv4 和 ipv6,网上查了很多人建议 ipv4 用 php 的 ip2long 存成整数型,但是 ipv6 呢?怎样设计一个类型,能同时存 ipv4 和 ipv6,方便极速检索
1
reus Jul 30, 2019
换 PostgreSQL,用 cidr 类型。
|
2
reus Jul 30, 2019
mysql 就用 binary(16)
|
3
shoaly Jul 30, 2019 问一下 存成 字符串 有啥弊端?
|
4
William911 Jul 30, 2019
有这么纠结吗? 纯展示需要就存字符串得了
|
5
jinhan13789991 Jul 30, 2019 via Android
转二进制字符串~
|
6
agdhole Jul 30, 2019 via Android
int32
|
7
nlimpid Jul 30, 2019
如果只有 ipv4,用 int 就够了。
如果同时有 ipv4 和 ipv6,可以使用 varbinary(16),mysql 有内置的方法处理 ip 类型,见 https://dev.mysql.com/doc/refman/5.6/en/miscellaneous-functions.html |
8
Dragonish3600 Jul 30, 2019 via iPhone
Discuz 做法是使用 varchar(45)
|
11
wangkai0351 Jul 30, 2019
@hmxxmh 一生二,二生三,三生万物?
|
12
GG668v26Fd55CP5W Jul 30, 2019 via iPhone
kiss 原则,keep it simple stupid …
|
13
mostkia Jul 30, 2019
有 ipv6,感觉字符串好一些吧,同时限制一下数据长度即可。
|
14
hikarugo Jul 30, 2019
怎么简单怎么来,纯展示字符串最直接,如果要解析,那么自己掂量看是把解析业务放在数据库做还是代码层做。
|