IP地址如何在数据库里存储
远离那些贬低你理想的人。狭隘的人经常如此,伟大的人会让你感觉自己也可以变好。
——马克·吐温
IPv4 地址是一个 32 位的二进制数,通常以点分十进制表示法呈现,例如 192.168.1.1。
字符串类型的存储方式:直接将IP 地址作为字符串存储在数据库中,比如可以用 VARCHAR(15)来存储。
--创建一个表,使用VARCHAR类型存储IPv4地址
CREATE TABLE ip records(
Id INT AUTO INCREMENT PRIMARY KEY.
ip_address VARCHAR(15)
)
--插入数据
INSERT INTo ip_records (ip_ address)VALUES('192.168.1.1');
- 优点:直观易懂,方便直接进行数据的插入、查询和显示,不需要进行额外的转换操作。
- 缺点:占用存储空间较大,字符串比较操作的性能相对较低,不利于进行范围查询
整数类型的存储方式:将 IPv4 地址转换为 32 位无符号整数进行存储,常用的数据类型有 INTUNSIGNED
--创建一个表,使用INT UNSIGNED类型存储IPv4地址
CREATE TABLE ip records(
Id INT AUTO_INCREMENT PRIMARY KEY,
ip_addreSS INT UNSIGNED
);
--插入数据,需要先将IP地址转换为整数
INSERT INTo ip_records (ip_addresS) VALUES (INET_ATON('192.168.1.1'));
--查询时将整数转换回IP地址
SELECT INET_NTOA(ip address) FRoM ip records;
- 优点:占用存储空间小,整数比较操作的性能较高,便于进行范围查询。
- 缺点:需要进行额外的转换操作,不够直观,增加了开发的复杂度。

浙公网安备 33010602011771号