2

我正在尝试将 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)我猜它修剪掉了一些小数,因为“float”不是正确的类型。我应该用什么来记录整个 IP?

2)另外,由于我是一个新手/黑客,我假设索引中的代码可以改进。如果您能帮助我改进代码以收集和保存 IP,我将不胜感激。

4

1 回答 1

1

您需要将 IP 地址保存为字符串。对于 IPv4,我相信最大长度为 15 个字符(###.###.###.###)。如果要考虑 IPv6,则需要考虑最大长度为 45 个字符。请参阅解释为什么它是 45 个字符的相关问题。

于 2012-05-08T02:43:57.320 回答