一般在實作有關網路活動的系統時,經常會需要在資料庫中存 ip address,而為了方便查詢特定範圍的 ip address,出現了一種 base 的儲存法,說明如下:
IP address = a.b.c.d
IP number = a * 16777216 + b * 65536 + c * 256 + d
而MySQL為了應因這種現象,推出了 inet_aton 及 inet_ntoa 函數,用以快速做 IP address 和 IP number 的轉換,說明如下:
inet_aton(ip_addr) = ip_num
inet_ntoa(ip_num) = ip_addr
除了利用MySQL提供的函數外,php也提供了對應的函數,即 ip2base 和 base2ip,其中 ip2base 對應到 inet_aton,base2ip 對應到 inet_ntoa。
而若是使用 java 等其他語言寫的程式的話就沒這麼幸運了,需要自已寫程式來轉換,可參考下面兩個連結:(是一樣的,怕其中一個掛點,所以備援一下)
- http://hi.baidu.com/vsign/blog/item/b92e59e73b65802eb8382013.html
- http://topic.csdn.net/t/20051009/11/4313904.html
Reference:
http://webghostv2.blogspot.com/2008/01/mysql-ip-address-inetatoninetntoa.html