python处理ip/掩码生成起始IP和结束IP

ipv4:
 1 import os
 2 import ipaddress
 3 
 4 def calculate_ip_range(ip,mask):
 5     network = ipaddress.IPv4Network(f"{ip}/{mask}",strict=False)
 6     start_ip=network[0]
 7     end_ip=network[-1]
 8     return start_ip,end_ip
 9     
10 #设置文件路径
11 #内容格式:127.0.0.1/20,每行一条
12 file_path="ipv4.txt"
13 with open(file_path,'r') as file:
14     for line in file:
15         line=line.strip() #去掉结尾换行符
16         ipsplit=line.split('/')
17         start_ip,end_ip=calculate_ip_range(ipsplit[0],ipsplit[1])
18         print(f"原始内容:{line},起始IP:{start_ip},结束IP:{end_ip}")

 ipv6:

import ipaddress
 
# 创建一个IPv6Network对象
ip = "2001:db8::"
mask = "64"  # IPv6通常使用掩码长度,例如/64
network = ipaddress.IPv6Network(f"{ip}/{mask}", strict=False)
 
# 获取网络地址(起始IP)
start_ip = str(network.network_address)
 
# 获取广播地址(对于IPv6通常是最后一个可分配的地址)
end_ip = str(network.broadcast_address)  # 注意:对于IPv6,通常没有广播地址的概念,我们使用最后一个可分配的地址作为结束IP
last_usable_ip = str(network[-1])  # 获取最后一个可分配的IP地址作为结束IP
 
print(f"起始IP: {start_ip}")
print(f"结束IP: {last_usable_ip}")  # 使用最后一个可分配的IP作为结束IP,而不是广播地址

 

posted @ 2025-04-21 14:17  Liu66~  阅读(33)  评论(0)    收藏  举报