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