Python如何将IP地址转换为整数形式?

2026-05-05 13:160阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计936个文字,预计阅读时间需要4分钟。

Python如何将IP地址转换为整数形式?

背景:今天有人问我内容:为什么数据库中有人推荐使用int类型来保存IP地址和地址?如今(2020年)来看,这个问题已经有些过时了。一方面,磁盘空间不再像以前那么贵,另一方面,IPv6的普及使得IP地址的存储方式有所变化。

Python如何将IP地址转换为整数形式?

一方面是磁盘空间不再昂贵,所以使用int类型来保存IP地址和地址已经不再必要。int类型虽然可以存储IP地址,但会浪费存储空间,而且不利于IP地址的读取和处理。

另一方面,随着IPv6的普及,IP地址的长度已经从原来的32位增加到128位,这就意味着使用int类型来存储IP地址已经不再适用。IPv6的地址长度使得使用更长的数据类型,如bigint,或者使用字符串来存储IP地址,更加合适。

背景

今天有人问我 “为什么数据库中有人推荐使用 int 类型来保存 IP 地址?”。现在(2020年)来看这个东西已经有点过时了,一方面是磁盘空间不在那么贵,另一方面是 IPv6 与这条法则不兼容。

下面我们就来看一下把 IPv4 地址转换成整数的原理和收益各是什么。

转换的原理

一个 IPv4 类的地址共分为四个部分 0.0.0.0 然而每一个部分的取值范围都在 0 ~ 255;也就是说每一个部分都可以用一个字节来保存,总共写个字节就够了,4 个字节不就是 int 吗?

第一步 把 IP 地址的各个部分转换为一个字节,并拼接它们,那么会得到一个 4 字节的串。

阅读全文

本文共计936个文字,预计阅读时间需要4分钟。

Python如何将IP地址转换为整数形式?

背景:今天有人问我内容:为什么数据库中有人推荐使用int类型来保存IP地址和地址?如今(2020年)来看,这个问题已经有些过时了。一方面,磁盘空间不再像以前那么贵,另一方面,IPv6的普及使得IP地址的存储方式有所变化。

Python如何将IP地址转换为整数形式?

一方面是磁盘空间不再昂贵,所以使用int类型来保存IP地址和地址已经不再必要。int类型虽然可以存储IP地址,但会浪费存储空间,而且不利于IP地址的读取和处理。

另一方面,随着IPv6的普及,IP地址的长度已经从原来的32位增加到128位,这就意味着使用int类型来存储IP地址已经不再适用。IPv6的地址长度使得使用更长的数据类型,如bigint,或者使用字符串来存储IP地址,更加合适。

背景

今天有人问我 “为什么数据库中有人推荐使用 int 类型来保存 IP 地址?”。现在(2020年)来看这个东西已经有点过时了,一方面是磁盘空间不在那么贵,另一方面是 IPv6 与这条法则不兼容。

下面我们就来看一下把 IPv4 地址转换成整数的原理和收益各是什么。

转换的原理

一个 IPv4 类的地址共分为四个部分 0.0.0.0 然而每一个部分的取值范围都在 0 ~ 255;也就是说每一个部分都可以用一个字节来保存,总共写个字节就够了,4 个字节不就是 int 吗?

第一步 把 IP 地址的各个部分转换为一个字节,并拼接它们,那么会得到一个 4 字节的串。

阅读全文