3.05.2013

[MySQL]INET_ATON, INET_NTOAの利用

とりあえずメモ


■使い方
SELECT INET_ATON('IPアドレス');

SELECT INET_NTOA(数値)


ATONの方はシングルクォーテーションでIPアドレスを括る
NTOAの方はそのまま数値を入れ込む

最初、NTOAも同様にシングルクォーテーションで括ってたらworningが返ってきて、
IPアドレスの値が「0.0.0.0」あれあれっ???ってなって、何故?みたいな~
しばらく悩む羽目に・・・・Orz
簡単なとこに落とし穴があるものです。。。


例えば、5個のテーブル結合及びIPアドレス変換とか


SELECT building.build_no, building.name, device.hostname, device_model.model_name, INET_NTOA(ip_address.ip_address)
FROM ip_address, device, device_model, isp_line, building
WHERE building.id = isp_line.building_id
AND isp_line.id = device.ispline_id
AND device_model.id = device.model_id
AND ip_address.device_id = device.id
AND ip_address.ip_address = INET_ATON('172.19.173.254');
※わかるひとはAS使ってエイリアスにした方がまとまるぽ^^;
※まぁ、IPアドレスから引っ張ってたりするんだけどね(爆


mysql>
+-------------+--------------------------------------------+-----------------------+------------+----------------------------------+
| building_no   | name                                       | hostname              | model_name    | INET_NTOA(ip_address.ip_address) |
+-------------+--------------------------------------------+-----------------------+------------+----------------------------------+
| マンションNo | マンション名                                | 機器名みたいなぁ   | 機種名みたいな | 172.16.1.3                   |
+-------------+--------------------------------------------+-----------------------+------------+----------------------------------+

以上

0 件のコメント:

コメントを投稿