IP位址在mysql的儲存

2021-08-18 09:46:04 字數 686 閱讀 5717

因為int比varchar(15)更高效,且php和mysql都有ip和int互轉的函式,所以在ip位址在mysql中用int儲存最優。

mysql儲存這個值是字段需要用int unsigned。不用unsigned的話,128以上的ip段就儲存不了了。

echo

ip2long('192.168.1.38');

//輸出:3232235814

select inet_aton('

192.168.1.38

');

--輸出:3232235814

兩個函式返回的結果是一樣的,都是a*256*256*256+b*256*256+c*256+d的演算法

192*256*256*256+168*256*256+1*256+38 = 3 232 235 814 

反過來,從int轉換為ip位址分別是php的long2ip()和mysql的inet_aton()

php存入時:$ip = ip2long($ip

);mysql取出時:select inet_aton(ip) from table ...php取出時,多一步:

$ip = long2ip($ip);

引自:

Mysql儲存IP位址

使用mysql函式 create table testip ip bigint 10 null insert into testip ip values inet aton 255.255.255.255 ip 4294967295 select inet ntoa ip ip from testi...

mysql儲存ip位址 MySQL怎樣儲存IP位址

為什麼要問如何儲存ip 首先就來闡明一下部分人得反問 為什麼要問ip得怎樣存,直接varchar型別不就得了嗎?其實做任何程式設計都要在功能實現的基礎上最大限度的優化效能。而資料庫設計是程式設計中不可忽略的乙個重要部分,所以巧存ip位址可以一定程度獲得很大提公升。利用函式演算法處理 在mysql中沒...

MySQL儲存IP位址的方法

為什麼要問如何儲存ip?首先就來闡明一下部分人得反問 為什麼要問ip得怎樣存,直接varchar型別不就得了嗎?其實做任何程式程式設計客棧設計都要在功能實現的基礎上最大限度的優化效能。而資料庫設計是程式設計中不可忽略的乙個重要部分,所以巧存ip位址可以一定程度獲得很大提公升。利用函式演算法處理 在m...