在 Python 中将 IP 地址字符串转换为二进制

新手上路,请多包涵

作为大型应用程序的一部分,我正在尝试将 IP 地址转换为二进制。目的是稍后计算局域网唤醒流量的广播地址。我假设有一种比我想的方式更有效的方法来做到这一点。这是按八位字节分解 IP 地址,在必要时在每个八位字节的开头添加 0,将每个八位字节转换为二进制,然后组合结果。我应该查看 netaddr、套接字或其他完全不同的东西吗?

示例:从 192.168.1.1 到 11000000.10101000.00000001.00000001

原文由 pizzim13 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 446
2 个回答

你想到像下面这样的东西吗?

 ip = '192.168.1.1'
print '.'.join([bin(int(x)+256)[3:] for x in ip.split('.')])

我同意其他人的意见,你可能应该避免转换为二进制表示来实现你想要的。

原文由 kriss 发布,翻译遵循 CC BY-SA 2.5 许可协议

插座inet_aton() 你想要什么?

原文由 EMP 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏