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;
  • 优点:占用存储空间小,整数比较操作的性能较高,便于进行范围查询。
  • 缺点:需要进行额外的转换操作,不够直观,增加了开发的复杂度。
posted @ 2025-03-30 15:19  Tsukinor  阅读(139)  评论(0)    收藏  举报