MySQLでIPアドレスを数値として扱う

kawama.jp: MySQLでIPアドレスを扱う(INET_ATONとINET_NTOA)

INET_ATON(たぶんAddressTONumberの略)はネットワークアドレスを10進数に変換してくれる関数です。数値に変換することで、SQLでのネットワークアドレスの扱いがぐっと楽になります。ちなみに逆バージョンのINET_NTOAというのもあります。

MySQLでIPアドレスを扱うのに楽ちんな関数です。

マニュアルでは

INET_ATON(expr)

文字列として指定された、ドット 10 進表記のネットワークアドレスを、そのアドレスの数値を表す整数として返す。 アドレスとして、4 バイトまたは 8 バイトのアドレスを指定できる。

mysql> SELECT INET_ATON(“209.207.224.40”);
-> 3520061480

生成される数値は、常にネットワークバイトオーダーで生成される。たとえば、上の例の数値は、209*256^3 + 207*256^2 + 224*256 +40 として計算される。

INET_NTOA(expr)

数値として表現されたネットワークアドレス(4 または 8 バイト)を、ドット 10 進表記のアドレス(文字列)として返す。

mysql> SELECT INET_NTOA(3520061480);
-> “209.207.224.40”

こうあります。
IPv4アドレスが簡単に32ビットで保存できますね。

タイトルとURLをコピーしました