zoukankan      html  css  js  c++  java
  • python处理网段

    # coding:utf-8
    import xlrd
    import xlwt
    import sys
    from IPy import IP
    import  re
    
    reload(sys)
    sys.setdefaultencoding("utf-8")
    
    class IpTable():
        def getIp(self,xls,txt):
            aworkbook = xlrd.open_workbook(xls)
            sheet1 = aworkbook.sheet_by_index(0)
            # col3 = sheet1.col_values(7)
            col3 = sheet1.col_values(7)
            len1 = len(col3)
            s = ','.join(col3)
            s.decode('utf-8')
            list1 = []
            list2 = []
            list3 = []
            for i in range(1, len1):
                emp = sheet1.row_values(i)
                name = emp[7]
                list1.append(name)
            for mm in list1:
                num = re.sub(r':', "", mm)
                num = re.sub(r'[a-z]', "", num)
                num = re.sub(r'[A-Z]', "", num)
                num = re.findall(r'd+.d+.d+.d+/+d+', num)
                list2.append(num)
            print list2
            for j in list2:
                if j:
                    list3.append(j)
            # print list3
                    # # print j
                    # for kk in j:
                    #     print kk
    
            # print list1
            # list2 = []
            # list3 = []
            # for t in list1:
            #     if t.strip() != '':
            #         k = t.split(':')
            #         list2.append(k[-1:])
            # for w in list2:
            #     l = ''.join(w)
            #     list3.append(l)
            # for m in range(len(list3)):
            #     list3[m] = list3[m].replace(' ', '')
                # list3[m] = list3[m].replace('
    ', '')
            # print list3
            # with open('d.txt', 'w') as f:
            #     for j in list2:
            #         f.write(j + '
    ')
            src = open(txt, 'r+')
            ips = src.read().split('
    ')
            print (ips)
    
            # def get_ipduan(file):
            #     list4 = []
            #     list5 = []
            #     connects=[]
            #     with open(file, 'r') as f:
            #         connects = f.readlines()
            #         tmp = []
            #         # print connects
            #         for g in range(len(connects)):
            #             if connects[g] == '
    ':
            #                 list4.append(tmp)
            #                 tmp = []
            #             else:
            #                 tmp.append(connects[g].split('
    ')[0])
            #     for g in list4:
            #         if g != []:
            #             list5.append(g)
            #     return list5
    
            list_tmp = []
            for ip in ips:
                for qq in list3:
                    for aa in qq:
                        if int(''.join(aa.split('/')[-1:])) >= 20:
                            try:
                                tmp = IP(aa)#172.30.144.0/20
                            except:
                                tmp = ''
                            if ip in tmp:
                                # list_tmp.setdefault(ip, []).append(qq)
                                # print tmp
                                if qq in list_tmp:
                                    continue
                                list_tmp.append(qq)
                                # list_tmp1=list(set(list_tmp))
            global str,str1
            str1=[]
            print list_tmp
            for yo in list_tmp:
                pp= ';'.join(yo)
                str1.append(pp)
                # if str =="":
                #     print "none"
                str=';'.join(str1)
            return str
    
    if __name__=="__main__":
        a = IpTable()
        result = a.getIp("","")
        print 'yo ',result
    # coding:utf-8
    from Main import Main
    from tkFileDialog import askopenfilename
    import tkMessageBox as tkMB
    from iptables import IpTable
    import sys
    
    reload(sys)
    sys.setdefaultencoding("utf-8")
    
    
    class FirewallIptable(Main):
        def __init__(self):
            Main.__init__(self)
            self.func = IpTable()
    
        def OpenIptablesFile(self):
            file_path = askopenfilename(filetypes=(("xls files", ("*.xls", "*.xlsx")),
                                                   ("All files", "*.*")))
            print type(file_path)
            if not file_path:
                self.return_msg["text"] = '没有导入文件'
            elif file_path[len(file_path) - 3:] != 'xls' and file_path[len(file_path) - 4:] != 'xlsx':
                print file_path[len(file_path) - 3:]
    
                self.return_msg["text"] = '不是xls或者xlsx文件'
            else:
                # flag, msg = self.func.comple(file_path)
                print file_path
                self.LB1["text"] = str(file_path)
        def OpenIPtableFile(self):
            file_path = askopenfilename(filetypes=(("txt files", ("*.txt")),
                                                   ("All files", "*.*")))
            if not file_path:
                self.return_msg["text"] = '没有导入文件'
            else:
                # flag, msg = self.func.comple(file_path)
                self.LB2["text"] = str(file_path)
    
        def getResult(self):
            Lb2 = self.LB2["text"]
            Lb1 = self.LB1["text"]
            if Lb1 != '' and (Lb1[len(Lb1) - 3:] == 'xls' or Lb1[len(Lb1) - 4] == 'xlsx'):
                print "|", Lb2[len(Lb2) - 4], "|"
                result = self.func.getIp(Lb1, Lb2)
                self.ScrolledText1.delete(0.0,'end')
                self.ScrolledText1.insert(0.0,result)
    
            else:
                tkMB.askokcancel("温馨提示", "IP地址数据不是xls或者xlsx文件")
    
    
    if __name__ == "__main__":
        dingding = FirewallIptable()
        dingding.mainloop()
    
     
  • 相关阅读:
    Wamp 扩展Oracle Oci
    Yii 网站上线不需手动配置
    Centos 设置时区
    Crontab 入门
    centos apache安装oracle扩展
    Centos rpm 卸载
    mac vagrant 虚拟机nfs挂载点
    搭建php虚拟环境
    Mac 安装package control
    Sublime 安装、删除插件
  • 原文地址:https://www.cnblogs.com/runningzz/p/6612889.html
Copyright © 2011-2022 走看看