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日,已超过 189 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
- 本文标签: Python
- 本文链接: https://blog.eyyyye.com/article/24
- 版权声明: 本文由比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权