MySQL和PHP中以整型存儲IP地址
正文:將IP地址以整型存儲
一般我們在資料庫中會用到ip地址用來查記錄的等等,而ip地址是分為四段的,一般是用varchar或char類型存儲。但是其實有更好的存儲方法就是以整型存儲IP地址、因為char和varchar所佔位元組會比int類型要大,例如:char(16),就佔了16個位元組,而使用 int類型的時候只佔了4位元組。假如使用char類型來存儲ip地址那麼當數據達到1億的時候會比使用int類型存儲ip地址要多1.8G的存儲空間、而且查詢速度也會變快、同時也方便比較(between之類的sql語句)。所以在設計數據表結構的時候以int類型存儲IP地址為最佳,且設置符號類型為unsigned的話保證了長度不夠的情況,下面用PHP與SQL展示如何將ip地址互相轉換。
PHP示例:
//你的ip地址 $user_ip = $_SERVER['REMOTE_ADDR']; //將獲取到的ip地址轉換為整型以及無符號格式 $save_ip = sprintf('%u',ip2long($userIp)); //轉換整型後的ip地址 echo $save_ip; //將整型的ip地址轉換為正常ip地址 echo long2ip($save_ip);
SQL示例:
-- 將ip地址轉換為整型 select inet_aton('192.168.1.1'); -- 將整型ip地址轉換為正常ip地址 select inet_ntoa('3232235777');
就到這裡啦,如果覺得部落客寫的還不錯,可以點贊、評論、推薦三連支援下部落客,你的三連就是我最大的動力!