繁体   English   中英

如何在python3中转换为cidr?

[英]how do you convert to cidr in python3?

我的IP地址为1.2.3.4,子网掩码为255.255.255.0

我想将此转换为cidr符号1.2.3.4/24

如何在Python3中执行此操作?

使用标准库中的ipaddress模块。


地址加上网络掩码是网络或接口,而不是地址。 假设您已经设置了一些主机位(它是1.2.3.4,而不是1.2.3.0),那么您要么拥有接口,要么拥有网络的非规范名称。 我假设它是一个接口,所以使用ip_interface

>>> i = ipaddress.ip_interface('1.2.3.4/255.255.255.0')

或者,如果您要确保它明确是IPv4而不是IPv6:

>>> i = ipaddress.IPv4Interface('1.2.3.4/255.255.255.0')

或者,您也可以使用地址和网络来组成它,而不用组合字符串来组成它。 这取决于您以何种格式获取此信息以及什么对您有意义。


要获取CIDR格式,请使用with_prefixlen访问器:

>>> i.with_prefixlen
'1.2.3.4/24'

您还可以进行其他各种i.address操作-将地址( 1.2.3.4 )提取为i.address ,或将网络( 1.2.3.0/24i.networki.network ,或者通过将i.network枚举来枚举网络上的所有地址。 i.network作为序列,等等。

您可以使用IPy库执行此操作。 如果向下滚动到文档,则可以看到它可以进行的字符串转换。 我们追求的是strNormal(1)

IP("1.2.3.4/255.255.255.0").strNormal(1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM