如题,很多网站的安全机制,为了判断用户最后登陆所在地,都会记录IP,那么你们储存IP用的字段是int(10)吗?
例如说VPS是DigitalOcean之类的支持IPv6的国外服务商,而用户是中国教育网用户,这种情况下你会设置AAAA记录开启IPv6吗?
如果开了,那么你们对应的IP储存字段是长什么样的?
我自己用的字符型字段储存。
1
kslr 2015-04-11 18:01:22 +08:00 via Android
谷歌搜索MySQL IPV6我记得第一个就是大牛的回答
|
2
lincanbin OP @kslr http://stackoverflow.com/questions/420680/how-to-store-ipv6-compatible-address-in-a-relational-database
是这个吗? Google里前面几个都是MySQL的文档,是用两个unsigned bigint |
3
Septembers 2015-05-05 01:18:13 +08:00
@lincanbin 2*BIGINT比较好
1. 比较性能好 2. 做分析时取特定范围查询会比较方便 伪代码(IPv4): -- 范围8.8.8.0 - 8.8.8.255 SELECT * FROM users WHERE ip_before = 0 and ip_after >= 0x8080800 and ip_after <= 0x80808FF 伪代码(IPv6): -- 范围2001:cdba:0000:0000:0000:0000:3257:9652 - 2001:cdba:0000:0000:0000:0000:3257:FFFF SELECT * FROM users WHERE ip_before = 0x2001CDBA00000000 and ip_after >= 0x0000000032579652 and ip_after <= 0x000000003257FFFF |