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

使用标准库处理 Python cidr 网络地址

如何解决使用标准库处理 Python cidr 网络地址

需要很简单:从 cidr 格式的单个 IPv4 地址(例如:“192.168.80.22/24”)提取相关信息:

  • 地址:“192.168.80.22”
  • 网络:“192.168.80.0”
  • 网络掩码:“255.255.255.0”
  • 广播:“192.168.80.255”

是否有一种“简单的方法”可以做到这一点(“简单”,在此上下文中的意思是“无需实际编写解析器”),可能仅使用 Python 标准库(我认为 {{ 1}} 不能这样做,但我可能误读了文档)

认为ipaddress无法处理的原因是我尝试过:

ipaddress

显然主机地址和网络地址不混合

解决方法

您可以按如下方式使用 ipaddress.ip_interface

>>> import ipaddress
>>> 
>>> host4 = ipaddress.ip_interface("192.168.80.22/24")
>>>
>>> host4.ip                       
IPv4Address('192.168.80.22')       # address
>>> host4.network.network_address
IPv4Address('192.168.80.0')        # network
>>> host4.netmask 
IPv4Address('255.255.255.0')       # netmask
>>> host4.network.broadcast_address
IPv4Address('192.168.80.255')      # broadcast

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