输入 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 1
如果是 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 库?
|