ip2long() 在 32 位元與 64 位元的差異

edited 十月 2013 in 伺服器環境
在程式從 32 位元平台移轉到 64位元平台執行時,發現 ip2long() 取得的數值有些差異,網路上找到一個說明:
http://blog.milkfarmsoft.com/?p=73

32 位元取得的數值範圍 -2147483648 到 2147483647
64 位元會取得 0 到 42949672945

所以很多 IP 都變成 2147483647 ,這時候也發現在 MySQL 中設定 int(13), int(14) 的結果上限都是 2147483647 ,改為 unsigned 後可以到 42949672945 ,但是為了保留兩種平台的相容性,我把它改成 BIGINT(12) 了。

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=3457
Sign In or Register to comment.