输入 172.14.0.0/24,返回数组从 172.14.1.1-172.14.254.254
怎么实现这种效果?
2 DevNet 2018-03-29 13:38:17 +08:00 IPy 这个模块专门处理 IP 的,你看看,应该能满足你的需求 |
4 DevNet 2018-03-29 13:41:12 +08:00 才发现,楼主掩码写的不对 172.14.0.0/24 = 172.14.0.1~172.14.0.255 172.14.0.0/16 = 172.14.0.1~172.14.255.255 |
5 Greenm 2018-03-29 13:47:03 +08:00 netaddr 了解一下 |
6 wonter 2018-03-29 13:48:18 +08:00 ![]() 如果是 Python3 的话,官方的 ipaddress 库了解 ```python3 import ipaddress first, *_, last = ipaddress.IPv4Network('172.14.0.0/24').hosts() print('{} - {}'.format(first, last)) ``` |
![]() | 7 suannva OP 额 刚刚在吃饭 打错了 不好意思 |
9 exiaohao 2018-03-29 13:54:22 +08:00 首先,172.14.0.0/24 应该是 172.14.0.0-172.14.0.255 然后用 ipaddress 就可以搞定了啊 ```python def every_addr(ip_range): import ipaddress ipn = ipaddress.IPv4Network(ip_range) return [ipn.network_address + i for i in range(0, 2 ** (32 - ipn._prefixlen))] ``` |
![]() | 10 ScotGu 2018-03-29 13:54:57 +08:00 @DevNet #4 >才发现,楼主掩码写的不对 >172.14.0.0/24 = 172.14.0.1~172.14.0.255 >172.14.0.0/16 = 172.14.0.1~172.14.255.255 LZ 的要求应该是可用 IP 吧。 一个网段最后的 .255 是广播位,不可用。 |
11 exiaohao 2018-03-29 13:59:00 +08:00 |
12 fanhaipeng0403 2018-03-29 18:14:43 +08:00 ipaddress 库? |