我试图将IP保存到访问我的应用主页的每个人的数据库中。我添加了一个带有ip:float
列的IP模型/表,并在索引中执行了以下操作。
def index
..........
ipmodel = Ip.new
@ip = request.ip
ipmodel.ip = @ip
ipmodel.save
end
当我在控制台中检查数据库时,它给了我这个
#<Ip id: 1, ip: 127.0, created_at: "2012-05-08 02:27:14", updated_at: "2012-05-08 02:27:14">
所以,因为我是从localhost访问的,所以127.0
。但是,我想知道为什么它只有4位数,因为IP地址是
127.0.0.1
1)我猜测它会削减一些小数,因为&#34; float&#34;不是正确的类型。我应该用什么来记录整个IP?
2)另外,由于我是一个新手/黑客,我假设可以改进索引中的代码。如果您帮助我改进收集和保存IP的代码,我将不胜感激。
答案 0 :(得分:1)
您需要将IP地址另存为字符串。对于IPv4,我认为最大长度为15个字符(###。###。###。###)。如果您想要考虑IPv6,那么您需要考虑最多45个字符的长度。请参阅此related question,解释为什么它是45个字符。