IP 地址在 MySQL 的存储

Mysql ⋅ tytrock ⋅ at 2018-08-02 10:18:52 ⋅ 4503 Reads

因为int比varchar(15)更高效,且php和mysql都有ip和int互转的函数,所以在ip地址在mysql中用int存储最优。

mysql存储这个值是字段需要用int UNSIGNED。不用UNSIGNED的话,128以上的IP段就存储不了了。


PHP ip转int

echo ip2long('192.168.1.38');

Mysql 转换查询

SELECT INET_ATON('192.168.1.38');

两个函数返回的结果是一样的,都是A*256*256*256+B*256*256+C*256+D的算法
192*256*256*256+168*256*256+1*256+38 = 3 232 235 814 


PHP int转ip

echo long2ip($ip);


This topic has been mark as Excenllent Topic.
Total Reply Count: 0
    No comments~~
    • publish_typography
    • publish_markdown
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • publish_image
    • publish_draft
    Ctrl+Enter