【问题标题】:Find IPv4 range from given subnet address and mask? [closed]从给定的子网地址和掩码中查找 IPv4 范围? [关闭]
【发布时间】:2013-06-11 06:15:54
【问题描述】:

我有子网地址和掩码,我正在寻找该子网中可能的 IP 范围。请让我知道 Python、PHP 或 Java 的解决方案。

例如,我有以下详细信息:

子网地址:10.113.12.40

掩码:255.255.255.248

那么 IP 范围是多少?

【问题讨论】:

  • Python 有这个库:docs.python.org/dev/library/ipaddress 你可能会感兴趣
  • 您似乎没有尝试过什么.. 但作为一个起点.. 这个 php 函数 php.net/ip2long 将 IPv4 地址转换为一个数字.. 从那时起我猜它是减去/添加正确值的问题

标签: php python ip mask subnet


【解决方案1】:
 10.113. 12. 40 -> 00001010.01110001.00001100.00101000
255.255.255.248 -> 11111111.11111111.11111111.11111000
                                                   ^^^--- 3 bits for your network

2**3 = 8,因此您的网络中有 8 个 IP,范围为 10.113.12.40 -> 10.113.12.47

基本上,网络掩码定义了网络的“内部”和“外部”。普通位掩码有1 用于外部,0 用于内部。所以更快的版本是:

10.113.12.40 NOR 255.255.255.248 = 10.113.12.47
               ^^^^^^^^^^^^^^^---invert the mask and OR it with the network address.

【讨论】:

  • 是否包括广播和网络IP,如果是,那么我有6个可用IP对吗?
  • 如果需要,不要忘记网关 IP。
  • 非常感谢,天才马克 B!
猜你喜欢
  • 2012-05-12
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
  • 2016-01-15
  • 1970-01-01
  • 2019-07-13
  • 2020-09-05
相关资源
最近更新 更多