最近啊,一直在某演练,不是作为攻击方比较遗憾,作为了防守方,是真的有点无聊,每天除了封堵IP就是封堵IP,封国外,封C段。没办法,职责所在,好好干吧,7*24小时,每天封堵得IP都好几千,客户的IP封堵还不智能,每次都还是手动添加子网掩码添加~你懂的。

Python是最好的语言,写了一个简单的处理脚本。说一下WAF上IP的处理格式,每次只能添加50个IP,还需要添加子网。大概的形式如下:

192.168.1.101/255.255.255.255,192.168.1.102/255.255.255.255

# -*- encoding: utf-8 -*-
'''
@File : ip2mask_py3.py
@Time : 2019/06/25 22:51:54
@Author : JE2Se 
@Version : 1.0
@Contact : admin@je2se.com
@WebSite : https://www.je2se.com
'''

import xlrd
import os
ipdata = []

workbook = xlrd.open_workbook(u'1.xlsx') //将待转换得IP存放在xlsx中
sheet = workbook.sheet_by_index(0)
for i in range(sheet.nrows):
    rows = sheet.row_values(i)
    ipdata.append('{}/255.255.255.255,'.format(rows[0].split()[0]))
    //添加子网掩码
data = ''
for i in range(len(ipdata)):
    print(ipdata[i])
    data += ipdata[i]
    if i % 49 == 0 and i != 0: //50个为一组
        data += '\n'

save_file = open(u'ok.txt', 'w+')  //将整理好的IP输出为TXT
save_file.write(data)
save_file.seek(-1, os.SEEK_END)  //去掉最后边的一个逗号
save_file.truncate()
save_file.close()
攻防演练-Python-IP掩码处理小脚本-JE2Se ' Blog
1.xlsx格式如下
攻防演练-Python-IP掩码处理小脚本-JE2Se ' Blog
输入的内容如下

1)虽然功能实现了,但是还是有不足的地方,首先是代码上的不足,只去了内容最后的一个逗号,如果,超过50个IP后分段,前一段的最后面的逗号还存在。
2)这个只适合固定子网掩码,每次碰到/27,/24的还需要改源码,不方便不方便,前期工作紧没时间改,将就了好久。

后来对代码进行了修改,50个分段以后,最后面没有逗号,支持网段,IP一起,上一个脚本每次要么固定IP,要么都是同一个网段,碰到/16,/27的还是要单独写,现在想要自动加子网掩码。修改代码如下:

# -*- encoding: utf-8 -*-
'''
@File : ip_automask_3.py
@Time : 2019/06/25 23:05:38
@Author : JE2Se 
@Version : 1.0
@Contact : admin@je2se.com
@WebSite : https://www.je2se.com
'''


from IPy import IP   //使用IPy模块,自动识别整理子网掩码
import os
import xlrd

ipdata = []

workbook = xlrd.open_workbook(u'test.xlsx')
sheet = workbook.sheet_by_index(0)
for i in range(sheet.nrows):
    rows = sheet.row_values(i)
    ipmask = IP(rows[0])
    a = ipmask.netmask()  //计算子网掩码
    c = ipmask.net()
    newip = "%s/%s" % (c,a)
    ipdata.append(newip)
data = ''
for i in range(len(ipdata)):
    data += ipdata[i]
    if i == 0:
        data += ','
    if i % 49 != 0 and i !=0: //这回烦着来的,先一个个加,再判断50个不加
        data += ','
    if i % 49 == 0 and i != 0:
        data += '\n\n'

save_file = open(u'ok.txt', 'w+')
save_file.write(data)
save_file.seek(-1, os.SEEK_END)
save_file.truncate()
save_file.close()
print("子网掩码转换ok了")

这次就把上一个脚本的问题都解决的,输出的内容也可以卡卡的直接复制黏贴,省了很多的事。

攻防演练-Python-IP掩码处理小脚本-JE2Se ' Blog
可以支持的样式
攻防演练-Python-IP掩码处理小脚本-JE2Se ' Blog
这回各类的子网都自动识别了

好开心。能多出点事件偷偷的看看隔壁友商的小姐姐了~