IPv4Address.compressed意为ip地址

当我看到ip地址文档:IPv4Address.compressed意为ip地址

https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address.compressed

当我看到IPv4Address.compressed,我发现有针对compressed没有解释。

谁能告诉我这是什么意思?


从source code,只有Return the shorthand version of the IP address as a string.解释,我没有很好地理解shorthand version of the IP address

回答:

compressedexploded是由基类ipaddress._IPAddressBase定义的属性,所以每个ip地址实例都有它们。对于IPv4存在两者之间没有区别,因为在历史上,没有必要有一个较短的表示:

>>> i4 = ipaddress.IPv4Address("127.0.0.1") 

>>> i4.exploded

'127.0.0.1'

>>> i4.compressed

'127.0.0.1'

不同的是使用IPv6地址:

>>> i6 = ipaddress.IPv6Address("::1") 

>>> i6.exploded

'0000:0000:0000:0000:0000:0000:0000:0001'

>>> i6.compressed

'::1'

这里留出组0的是对可用性有很大的帮助。

由于所有地址都具有这两个属性,因此不需要关心地址对象是什么类型。如果只有IPv6Address对象具有exploded属性,则在处理混合地址类型时使用它会更麻烦。

回答:

我发现有针对压缩

它实际上documented一起与没有说明爆炸属性:

压缩

爆炸

以点分十进制表示法的字符串表示形式。前导零不会包含在表示中。

由于IPv4没有为八位位组设置为零的地址定义速记符号,所以这两个属性始终与IPv4地址的 str(addr)相同。公开这些属性使得它更容易编写可处理IPv4和IPv6地址的显示代码 。

属性本身是在IPv4和IPv6两者的基类defined地址如下:

@property 

def compressed(self):

"""Return the shorthand version of the IP address as a string."""

return str(self)

对于IPv4Address对象str(self)将十进制点符号,例如返回一个string"192.168.0.1"

以上是 IPv4Address.compressed意为ip地址 的全部内容, 来源链接: utcz.com/qa/261548.html

回到顶部