微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Python3 中使用 ip_address 从 ipaddress 获取网络

如何解决在 Python3 中使用 ip_address 从 ipaddress 获取网络

如何转换字符串 ip,例如“1.2.3.4”,到具有网络掩码“255.255.255.0”的 ipaddress.ip_network,例如使用 ipaddress 库获取 ip_network("1.2.3.0/24") 。目的不是自己对ips做任何字符串操作。

解决方法

只需添加选项strict=False。在这种情况下,任何主机位都将被剥离以将接口地址转换为有效的网络地址。

>>> from ipaddress import ip_network
>>>
>>> network = str(ip_network("1.2.3.4/255.255.255.0",strict=False))
>>> network
'1.2.3.0/24'

如果您想保留实际的 IPv4Network/IPv6Network 对象,请跳过转换回字符串。

顺便说一句,如果您确实想要一个同时设置主机位和掩码的字符串,那么您可以使用 ipaddress 模块中的“ip_interface”函数。它将返回一个 IPv4Interface 对象:

>>> from ipaddress import ip_interface
>>>
>>> interface = str(ip_interface("1.2.3.4/255.255.255.0"))
>>> interface
'1.2.3.4/24'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。