Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python IPv4Address.ipaddress的压缩含义_Python_Ip Address - Fatal编程技术网

Python IPv4Address.ipaddress的压缩含义

Python IPv4Address.ipaddress的压缩含义,python,ip-address,Python,Ip Address,当我阅读ipaddress文档时: 当我阅读IPv4Address.compressed时,我发现对compressed没有解释 谁能告诉我这是什么意思 从中,只有以字符串形式返回IP地址的速记版本。解释,我不太理解IP地址的速记版本 我发现这件事没有任何解释 它实际上与分解的属性结合在一起: 压缩的 爆炸 用点十进制表示法表示的字符串。表示中从不包含前导零 由于IPv4没有为八位字节设置为零的地址定义简写符号,因此这两个属性始终与 str(addr)用于IPv4地址。公开这些属性会使 更易

当我阅读ipaddress文档时:

当我阅读
IPv4Address.compressed
时,我发现对
compressed
没有解释

谁能告诉我这是什么意思


从中,只有
以字符串形式返回IP地址的速记版本。
解释,我不太理解IP地址的
速记版本

我发现这件事没有任何解释

它实际上与分解的属性结合在一起:

压缩的

爆炸

用点十进制表示法表示的字符串。表示中从不包含前导零

由于IPv4没有为八位字节设置为零的地址定义简写符号,因此这两个属性始终与
str(addr)
用于IPv4地址。公开这些属性会使 更易于编写可同时处理IPv4和IPv6的显示代码 地址

属性本身位于IPv4和IPv6地址的基类中,如下所示:

@property
def compressed(self):
    """Return the shorthand version of the IP address as a string."""
    return str(self)
对于
IPv4Address
对象
str(self)
将返回十进制点表示法,例如
“192.168.0.1”

我发现这件事没有任何解释

它实际上与分解的属性结合在一起:

压缩的

爆炸

用点十进制表示法表示的字符串。表示中从不包含前导零

由于IPv4没有为八位字节设置为零的地址定义简写符号,因此这两个属性始终与
str(addr)
用于IPv4地址。公开这些属性会使 更易于编写可同时处理IPv4和IPv6的显示代码 地址

属性本身位于IPv4和IPv6地址的基类中,如下所示:

@property
def compressed(self):
    """Return the shorthand version of the IP address as a string."""
    return str(self)

对于
IPv4Address
对象
str(self)
将返回十进制点表示法,例如
“192.168.0.1”
压缩的
分解的
是基类定义的属性,因此每个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
对象具有
分解的
属性,那么在处理混合地址类型时使用该属性将更加麻烦。

压缩的
分解的
是由基类定义的属性,因此每个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
对象有一个
分解的
属性,那么在处理混合地址类型时使用它会更麻烦。

有这样的例子吗?我不太明白IP地址的简写版本是一个字符串。有这样的例子吗?我不太理解IP地址作为字符串的速记版本。我希望它在127.0.0.1中省略可选的零来生成127.1,但它没有。也许它对IPv6更有用,并包括IPv4的正交性。我看到它在做本页为IPv6所描述的事情:@tripleee这很有意义,因为IPv4对象有许多模仿IPv6对象的属性。我希望它在127.0.0.1中省略可选的零,以生成127.1,但它没有。也许它对IPv6更有用,并包括IPv4的正交性。我看到它在做本页对IPv6描述的事情:@tripleee这很有意义,因为IPv4对象有许多模仿IPv6对象的属性。IPv4地址没有缩短版本并不完全正确。有一些模糊的符号曾经相当普遍,但我想它们最终被滥用为安全漏洞的频率比它们实际有用的频率要高。@tripleee至少似乎没有足够的需求来编写RFC,或者我还没有遇到过。至少,如果您看到这种形式的ip地址,您会知道它是什么。我曾经遇到过一个地址用十六进制表示的日志文件,我花了几分钟的时间才弄清楚它们是什么。在某些平台上,你仍然可以执行类似于ping 134744072的操作。快速谷歌搜索发现:@tripleee nice,我不知道那个。似乎连firefox都接受这样的地址:)IPv4地址没有缩短版本并不完全正确。有一些模糊的符号曾经相当普遍,但我想它们最终被滥用为安全漏洞的频率比它们实际有用的频率要高。@tripleee至少似乎没有足够的需求来编写RFC,或者我还没有遇到过。至少,如果您看到这种形式的ip地址,您会知道它是什么。我曾经遇到过一个地址用十六进制表示的日志文件,我花了几分钟的时间才弄清楚它们是什么。在某些平台上,你仍然可以执行类似于ping 134744072的操作。快速谷歌搜索发现:@tripleee nice,我不知道那个。似乎连firefox都接受这样的地址:)