《Python 脚本:CIDR 转 IP 区间》
将 CIDR 格式(如 192.168.0.0/24)的地址转换为对应的 IP 范围区间。
1. 使用 netaddr 库
pip 安装 netaddr 后,脚本可从命令行接收 CIDR,输出首尾 IP:
#!/usr/bin/python3
# pip install netaddr
from netaddr import IPNetwork
from netaddr import core
import sys
def main():
try:
ipList = IPNetwork(sys.argv[1])
except core.AddrFormatError as e:
print(e)
sys.exit()
cnt = 0
for ip in ipList:
if cnt == 1 or cnt == len(ipList) - 1:
print('%s' % ip)
cnt = cnt + 1
if __name__ == "__main__":
if len(sys.argv) == 1:
print("please input cidr format ip, eg: 192.168.0.0/23")
sys.exit()
main()
用法:
python3 cidr.py 192.168.0.0/23
2. 使用 IPy 库展开所有 IP
from IPy import IP
ip_list = ["192.168.0.0/24"]
for cidr_ip in ip_list:
for ip in IP(cidr_ip):
print(ip)
说明:示例接口地址已替换为可用的占位网段,实际应用时请按需替换。
阅读 —
·
全站 —