如题,很多网站的安全机制,为了判断用户最后登陆所在地,都会记录IP,那么你们储存IP用的字段是int(10)吗?
例如说VPS是DigitalOcean之类的支持IPv6的国外服务商,而用户是中国教育网用户,这种情况下你会设置AAAA记录开启IPv6吗?
如果开了,那么你们对应的IP储存字段是长什么样的?
我自己用的字符型字段储存。
如题,很多网站的安全机制,为了判断用户最后登陆所在地,都会记录IP,那么你们储存IP用的字段是int(10)吗?
例如说VPS是DigitalOcean之类的支持IPv6的国外服务商,而用户是中国教育网用户,这种情况下你会设置AAAA记录开启IPv6吗?
如果开了,那么你们对应的IP储存字段是长什么样的?
我自己用的字符型字段储存。
1
kslr Apr 11, 2015 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 May 5, 2015
@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 |