原创

python处理ip段,转换成CIDR格式展示

import  openpyxl
import ipaddress
#加载excel
wb=openpyxl.load_workbook(r'C:\Users\bit\Desktop\ICP0707.xlsx')
#输出sheet名称
print(wb.worksheets)
#选中sheet页
sh=wb["ICP"]
#获取单元格中值列A,
colA=sh.cell(2,1).value
#获取单元格值列B,
colB=sh.cell(2,2).value
#列a赋值起始ip
startip=ipaddress.ip_address(colA)
#列b赋值结束ip
endip=ipaddress.ip_address(colB)
#计算ip/掩码(cidr)
cidr=list(ipaddress.summarize_address_range(startip,endip))
#赋值c列
cloC=str(cidr[0])
#表格总行数
maxrow=sh.max_row+1
#写入c列表格
sh.cell(2,3).value=cloC
#保存表格
wb.save(r'C:\Users\bit\Desktop\ICP0707.xlsx')


#循环处理
for num in range(2,sh.max_row+1):
	startip=ipaddress.ip_address(sh.cell(num,1).value)
	endip=ipaddress.ip_address(sh.cell(num,2).value)
	cidr=list(ipaddress.summarize_address_range(startip,endip))
	sh.cell(num,3).value=str(cidr[0])
	sh.cell(num,6).value=len(cidr)
	#汇总后ip段数量大于1数据添加至表格末行
	if len(cidr)>1:
		for tmp in range(1,len(cidr)):
			sh.cell(maxrow,3).value=str(cidr[tmp])
			sh.cell(maxrow,1).value=sh.cell(num,1).value
			sh.cell(maxrow,2).value=sh.cell(num,2).value
			sh.cell(maxrow,4).value=sh.cell(num,4).value
			sh.cell(maxrow,5).value=sh.cell(num,5).value
			sh.cell(maxrow,6).value=len(cidr)
			maxrow=maxrow+1

#获取list数组长度
len(cidr)


正文到此结束
温馨提示:
本文最后更新于 2024年05月16日,已超过 210 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
本文目录