当前位置: 首页 > news >正文

Python 代码的主要功能是从给定的日志文件和设备列表中提取特定设备(华为和华三)的用户账号信息

# 华为设备类
class HuaWeiClass:# 初始化方法,用于设置华为设备的初始属性def __init__(self):# 设置密码属性self.pwd = 'password'# 设置级别属性self.level = 'level'# 设置服务类型属性self.service_type = 'service-type'# 华为交换机日志处理方法def huaWeiSW(self, info):# 定义局部变量localUser,用于匹配日志中的关键字localUser = 'local-user'# 初始化一个空列表,用于存储账号信息user_info = []# 遍历info列表,提取账号及密码信息for f in info:# 检查当前行是否包含关键字localUser和pwdif (localUser in f) and (self.pwd in f):# 使用空格分割当前行,得到一个单词列表l = f.split()# 找到localUser关键字在列表中的索引num = l.index(localUser)# 获取用户名,位于localUser关键字后面username = l[num + 1]# 获取密码,位于localUser关键字后面第四个位置cipher = l[num + 4]# 将用户名和密码作为一个列表添加到user_info中user_info.append([username, cipher])# 遍历user_info列表,提取账号服务类型for u in user_info:# 初始化一个空列表,用于存储服务类型sv = []# 再次遍历info列表for i in info:# 使用空格分割当前行,得到一个单词列表l = i.split()# 检查当前行是否包含用户名和service_type关键字if (u[0] in l) and (self.service_type in l):# 找到service_type关键字在列表中的索引num = l.index(self.service_type)# 获取服务类型信息,从service_type关键字后面开始s_ty = ' '.join(l[num + 1:])# 将服务类型信息添加到sv列表中sv.append(s_ty)# 将所有服务类型信息合并成一个字符串,并添加到user_info中对应的账号信息中sv = ' '.join(sv)user_info[user_info.index(u)].append(sv)# 遍历user_info列表,提取账号级别for u in user_info:# 初始化一个空列表,用于存储级别信息le = []# 再次遍历info列表for i in info:# 使用空格分割当前行,得到一个单词列表l = i.split()# 检查当前行是否包含用户名和level关键字if (u[0] in l) and (self.level in l):# 找到level关键字在列表中的索引,并加1获取级别信息num = l.index(self.level) + 1# 获取级别信息le.append(l[num])# 将所有级别信息合并成一个字符串,并添加到user_info中对应的账号信息中lev = ' '.join(le)user_info[user_info.index(u)].append(lev)# 返回处理后的账号信息列表return user_info# 华为交换机日志处理方法2,调用基础日志处理方法def huaWeiSW2(self, info):# 调用基础日志处理方法,传入info列表和关键字'local-user'return self.basicsLog(info, 'local-user')# 华为防火墙日志处理方法,调用基础日志处理方法def huaWeiFW(self, info):# 调用基础日志处理方法,传入info列表和关键字'manager-user'return self.basicsLog(info, 'manager-user')# 基础日志处理方法,用于处理不同类型的华为设备日志def basicsLog(self, info, tag):# 定义局部变量localUser,用于匹配日志中的关键字localUser = tag# 初始化一个空列表,用于存储账号信息user_info = []# 遍历info列表,提取账号信息for f in info:# 获取当前行在info列表中的索引num = info.index(f)# 使用空格分割当前行,得到一个单词列表l = f.split()# 检查当前行是否包含关键字localUserif localUser in l:# 检查下一行是否包含密码信息if self.pwd in info[num + 1]:# 找到localUser关键字在列表中的索引n = l.index(localUser)# 获取用户名,位于localUser关键字后面username = l[n + 1]# 获取密码信息,位于下一行pwd_low = info[num + 1]passwd = ''# 检查下一行是否包含pwd关键字if self.pwd in pwd_low

http://www.mrgr.cn/news/58002.html

相关文章:

  • JavaWeb合集12-Redis
  • pdf文件如何加密发送?分享5个靠谱的加密发送小妙招!2024挥泪汇总!
  • 【pm】devfreq 框架
  • AFS系统
  • 【linux】centos7卸载默认的jdk
  • vue父子传参方式——自定义事件
  • Java 开发——(下篇)从零开始搭建后端基础项目 Spring Boot 3 + MybatisPlus
  • AI基础:传教士与野人
  • Python如何处理zip压缩文件(Python处理zip压缩文件接口源码)
  • SLAM:未来智能科技的核心——探索多传感器融合的无限可
  • [蓝桥杯 2024 省 C] 回文数组
  • LeetCode199. 二叉树的右视图(2024秋季每日一题 47)
  • Linux 权限的理解
  • 前端发送请求格式
  • 1024——视触觉传感器GelSight的前世今生
  • 系统移植相关概念总结
  • 力扣周赛第420场 中等 3325.字符至少出现k次的子字符串 I
  • C语言程序设计:现代设计方法习题笔记《chapter4》
  • java的maven打包插件来了,package一键打包exe、dmg、rpm等
  • JAVA应用测试,线上故障排查分析全套路!
  • C++,STL 045(24.10.24)
  • 【Linux】进程状态及其转换
  • Github_以太网开源项目verilog-ethernet代码阅读与移植(八)——移植工程分享
  • 头歌——人工智能(遗传算法)
  • 获取图像的风格矩阵
  • 现场总是发生急停,很可能是PLC和设置间网络中断