1

JavaEE5に基づく特定のWebアプリケーションを使用するすべてのユーザーのIPアドレス情報をログに記録する必要があります。

次のサポートされているデータベース(h2、mysql、oracle)にIPv4またはIPv6アドレスを格納するための適切なSQLデータ型は何ですか?

特定のIPアドレスからのアクティビティをフィルタリングする必要もあります。表現を文字列フィールド(たとえば、ipv4、ipv6アドレスを保持するvarchar(32))として扱う必要がありますか?

4

3 に答える 3

4

IP アドレスを に保存しますvarchar(15)。これは読みやすく、特定の IP のようにフィルタリングできますwhere ip = '1.2.3.4'

のようにネットワークでフィルタリングする必要がある場合1.2.3.4/24は、別の話になります。その場合、IP アドレスを 4 バイトのバイナリとして保存することをお勧めします。

于 2010-04-04T17:16:29.447 に答える
2

大量のデータがあり、検索する必要がある場合は、パフォーマンスのために、IP の文字列 (ドット) 表現を適切な整数値に変換することをお勧めします。

于 2010-04-04T17:20:54.310 に答える
0

これらのいずれかが有効です

  • 4 バイト、おそらく CIDR の 5 番目のバイト
  • varchar(15) または (18) を使用して完全な表現を一度に保存する

そういえば、SQL Serverのsys.dm_exec_connectionsにvarchar(48)...

于 2010-04-04T18:00:57.140 に答える