ciscoconfparse.

Analise através de configurações do Cisco IOS e recupere partes da configuração usando uma variedade de métodos de consulta
Baixe Agora

ciscoconfparse. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL
  • Preço:
  • FREE
  • Nome do editor:
  • David Michael Pennington
  • Site do editor:
  • http://pennington.net

ciscoconfparse. Tag


ciscoconfparse. Descrição

Analise através de configurações do Cisco IOS e recupere partes da configuração usando uma variedade de métodos de consulta Ciscoconfparse é uma biblioteca Python para analisar as configurações do Cisco IOS e recuperar as partes da configuração com base em uma variedade de métodos de consulta. O pacote processará uma configuração de estilo iOS e a quebra em um conjunto de relacionamentos pai / filho vinculados. Em seguida, você emita consultas contra esses relacionamentos usando um modelo familiar de sintaxe familiar. As consultas podem estar na forma de uma string simples, ou você pode usar expressões regulares. A API fornece poderosas ferramentas de consulta, incluindo a capacidade de encontrar todos os pais que têm ou não têm filhos correspondentes a um certo critério. Isso significa que é fácil encontrar os nomes de interface de todos os troncos Layer2 em um catalisador 6500 ou recuperar uma lista de todas as interfaces com o CDP desativado. Até este pacote, eu não conheço nenhuma simples APIs de análise de configuração para fazer o mesmo; Tem sido tradicionalmente considerado o domínio da raspagem de tela. Em conjunto com os sofisticados capacidades de manipulação do Python, sua imaginação é o limite. O pacote também fornece um conjunto de métodos para consultar e manipular os próprios objetos de Iosconfigline. Isso lhe dá um mecanismo flexível para construir suas próprias consultas personalizadas, porque os objetos de Iosconfigline armazenam toda a hierarquia pai / criança neles. Examplos de relacionamentos familiares da configuração são mostrados abaixo ... LINE01: Policy-Map QoS_1Line02: Classe Goldline03: Classe Priority 10Line04: Classe SilverLine05: Bandwidth 30Line06: Random-detectline07: Classe DefaultLine08 :! Line09: Interface Serial 1 / 0Line10: Encapsulamento PPPLINE11: Endereço IP 1.1.1.1255.255.255.252LINE12 :! LINE13: Lista de Acesso 101 Negar qualquer EQ 25 Logline14: Lista de Acesso 101 Permitir IP Qualquer Pais: 01, 02, 04, 09Children: de 01 = 02, 04, 07f 02 = 03of 04 = 05, 09 = 10, 11, 02, 02, 04, 02, 02, 11Dest_Cestors: 01, 09Famílias: 01, 02, 03, 04, 05, 06, 0709, 10, 11family_endpoints: 07, 11Note que 01, 09, 13 e 14 não são considerados irmãos, nem fazem parte da mesma família. De fato, 13 e 14 não pertencem a uma família; Eles não têm filhos. O pacote fornece vários tipos de métodos: 1. Métodos de consulta Retornando uma lista de linhas de texto.1.1 Find_lines (auto, linespec, Exactmatch = Falso, Ignore_WS = Falso): 1.2 Find_Children (self, linespec, exactmatch = Falso, Ignore_WS = Falso): 1.3 Find_all_children (self, linespec, exactmatch = FALSE, IGNORRE_WS = FALSE): 1.4 Find_Blocks (self, blockspec, Exactmatch = Falso, Ignore_WS = Falso): 1.5 Find_parents_w_child (self, paispec, fashionspec, ignore_ws = false): 1.6 Find_parents_wo_child (auto, paispec, fashionspec, ignore_ws = false) : 1.7 req_cfgspec_all_diff (self, cfgspec): 1.8 req_cfgspec_excl_diff (auto, linespec, UNCFGSPEC, CFGSPEC): 2. Métodos de consulta Retornando uma lista de objetos de Iosconfigline.2.1 Find_line_obj (self, linespec): 2.2 Find_sibling_obj (self, lineobject): 2.3 Find_child_obj (self, lineobject): 2.4 Find_all_child_obj (self, lineobject): 2.5 Find_parent_obj (self, lineobject): 3 . Métodos para manipular IOSCONFIGLINE Objectos3.1 Unique_Obj (self, objectlist): 3.2 Objects_to_lines (self, objectlist): 3.3 Objects_to_uncfg (self, objectlist): 4. Métodos de consulta em Iosconfigline Objectos4.1 Pai (Auto): 4.2 Crianças (auto): 4.3 Has_Children (auto): 4.4 Child_Indent (auto): 4.5 Oldest_ancestor (auto): 4.6 Family_Entpoint (auto): 4.8 Texto (auto): 4.9 UNCFGText (auto): 5. Métodos para analisar a configuração: Eu não vou me incomodar explicando aqui ... você tem a fonte se você estiver interessado.Basic Uso #! / Usr / bin / env pythonfrom ciscoconfparse import * anal = ciscoconfparse ("/ tftpboot / bucksnort.conf ") Retorna uma lista de todas as interfaces de caixa eletrônico e subinterfaces # ATM_INTFS = parse.find_lines (" ^ interfacesatm ") # Retorna uma lista de todas as interfaces com uma determinada política de QoS # qos_intfs = parse.find_parents_w_child (" ^ interm. "," -Policy qos_01 ") # Retorna uma lista de todas as interfaces ativas (ou seja, não desligamento) #action_intfs = parse.find_parents_wo_child (" ^ interm. "," desligamento ") # Encontre todas as interfaces que tenham voz configurada, se estiverem confiando em DSCP # Build Uma nova configuração para confiar em Cos ## Você deve colocar um sinal de caret (^) na frente da "interface" abaixo ... Caso contrário, você receberá correspondências # para qualquer comando com a interface na sintaxe. ^ é uma expressão regular para combinar o início # de uma linha. # newcfg = [] vice_intfs = parse.find_parents_w_child ("^ interface", "SwitchPort Voice") para INTF em Voice_Intfs: Famobj = Ciscoconfparse (Parse.Find_Children (INTF, exactmatch = true)) se (Famobj.find_lines ("MLS QOS Trust DSCP"): Newcfg.Append (INTF) Newcfg.Append ("MLS QOS TRUST COS") Os exemplos / diretório na distribuição contêm mais casos de uso, incluindo Amostra configura para analisar. Ao impor normas de configuração, o método Req_CFGSPEC_EXCL_DIFF () é muito útil; Exemplos de seu uso estão incluídos. Requisitos: · Pitão


ciscoconfparse. Software Relacionado