使用 ip_address in Python3 从 ipaddress 获取网络

From ipaddress get network using ip_address in Python3

如何转换字符串 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”函数。它将 return 一个 IPv4Interface 对象:

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