1. ホーム
  2. mysql

MySQL に IP アドレスを格納する最も効率的な方法 [重複]。

2023-09-17 22:29:15

質問

MySQL で IP アドレスを保存および取得する最も効率的な方法は何ですか? 今、私はやっています。

SELECT * FROM logins WHERE ip = '1.2.3.4'

ここで、ipは VARCHAR(15) フィールドです。

もっと良い方法はないでしょうか?

どのように解決するのですか?

以下のような場合 IPv4アドレス として保存することができます。 int unsigned として保存し INET_ATON() INET_NTOA() 関数を使って、数値からIPアドレスを返したり、逆にIPアドレスから数値を返したりすることができます。

例を示します。

SELECT INET_ATON('127.0.0.1');

+------------------------+
| INET_ATON('127.0.0.1') |
+------------------------+
|             2130706433 | 
+------------------------+
1 row in set (0.00 sec)


SELECT INET_NTOA('2130706433');

+-------------------------+
| INET_NTOA('2130706433') |
+-------------------------+
| 127.0.0.1               | 
+-------------------------+
1 row in set (0.02 sec)