2012-05-08 4 views
1

私は自分のアプリケーションのホームページを訪れるすべての人のデータベースにIPを保存しようとしています。私はip:float列のIPモデル/テーブルを追加し、インデックスで次のことを行いました。Rails:この列に正しいタイプをfloatしますか?

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"> 

を与え、それは127.0です。 IPアドレスは、私が「フロート」は右のタイプではないので、それは小数の一部を切り取ることを推測している

127.0.0.1 

1)であるから、それは、唯一の4桁の数字だ理由しかし、私は思ったんだけど。 IP全体を記録する代わりに何を使用すればよいですか?

2)また、私は初心者/ハックのビットであるため、インデックスのコードを改善できると仮定しています。 IPを収集して保存するためのコードを改善する手助けをしていただければ幸いです。

答えて

1

あなたは文字列としてIPアドレスを保存したいでしょう。 IPv4の場合、最大長は15文字(###。###。###。###)と考えています。 IPv6を考慮する場合は、最大45文字を考慮する必要があります。これが45文字である理由を説明しているrelated questionを参照してください。

関連する問題