none
Script DHCP RRS feed

  • Pergunta

  • Bom dia,

    Galera gerando com o netsh um arquivo com leases do DHCP, tiro alguma coisa que não quero e fica assim o arquivo:

    192.168.10.53    - 255.255.254.0  - ff-ff-ff-30-47-8b   -28/03/2013 12:23:21    -D-
    192.168.10.55    - 255.255.254.0  - ff-ff-ff-f9-43-73   -28/03/2013 21:03:57    -D-  EMP990465
    192.168.10.57    - 255.255.254.0  - ff-ff-ff-47-07-1a   -21/03/2013 18:24:14    -D-  EMP99600
    192.168.10.58    - 255.255.254.0  - ff-ff-ff-88-b4-b4   -29/03/2013 06:33:56    -D-  residencia
    192.168.10.60    - 255.255.254.0  - ff-ff-ff-f9-43-0c   -28/03/2013 18:17:57    -D-  EMP990463
    192.168.10.61   - 255.255.254.0  - ff-ff-ff-21-15-d4   - NEVER EXPIRES         -U-  EMP990548

    Só estou com dificuldades em filtrar esta lista e fazer em excel ou cvs somente o IP MAC Estação, tipo assim:

    IP                         MAC                   Estacao

    192.168.10.249   ff-ff-ff-21-15-d4   EMP990548

    Alguem sabe como faço isso ou já tem pronto um script para retornar só estes valores do lease do DHCP?

    Obrigado.


    Warley

    quinta-feira, 21 de março de 2013 14:27

Respostas

  • Warley,

    É possível fazer com VBScript e Bat, fiz com PowerShell porque acho que dá menos trabalho. Dá pra vc pegar a idéia e adaptar a outra linguagem.

    $Arquivo_Saida="C:\temp\teste.txt"
    
    $Arquivo = Get-Content C:\temp\dhcp.txt
    
    #Escreve cabeçalho do arquivo de Saída
    "IP`tMAC`tEstacao" > $Arquivo_Saida
    
    foreach($Linha in $Arquivo){
    
        #Separa por "-"
        $L = $Linha.Split("-")
    
        #0=IP
        $IP = $L[0].Trim()
    
        #2 até 7 é o MAC
        $Mac = $L[2].trim() + "-" + $L[3].trim() + "-" +$L[4].trim() + "-" +$L[5].trim() + "-" +$L[6].trim() + "-" +$L[7].trim()
    
        #10 = Host
        $HName=$L[10].trim()
        
        #Escreve resultado dentro do arquivo de saída
        "$IP`t$Mac`t$HName" >>  $Arquivo_Saida
    
    }
    
    

    O que faço é ler linha por linha do arquivo.

    A cada linha eu quebro a linha para dentro de um array onde cada elemento está entre "-", o MAC complicou porque ele é separado por "-".

    Também precisei fazer um "Trim" em cada elemento pois tinha espaço em branco sobrando.

    No final eu junto tudo separando cada atributo por TAB (`t).


    Fábio de Paula Junior

    • Sugerido como Resposta Jhonatan Morais sábado, 23 de março de 2013 05:38
    • Marcado como Resposta Warley Eric segunda-feira, 25 de março de 2013 11:19
    quinta-feira, 21 de março de 2013 17:30
    Moderador

Todas as Respostas

  • Warley,

    É possível fazer com VBScript e Bat, fiz com PowerShell porque acho que dá menos trabalho. Dá pra vc pegar a idéia e adaptar a outra linguagem.

    $Arquivo_Saida="C:\temp\teste.txt"
    
    $Arquivo = Get-Content C:\temp\dhcp.txt
    
    #Escreve cabeçalho do arquivo de Saída
    "IP`tMAC`tEstacao" > $Arquivo_Saida
    
    foreach($Linha in $Arquivo){
    
        #Separa por "-"
        $L = $Linha.Split("-")
    
        #0=IP
        $IP = $L[0].Trim()
    
        #2 até 7 é o MAC
        $Mac = $L[2].trim() + "-" + $L[3].trim() + "-" +$L[4].trim() + "-" +$L[5].trim() + "-" +$L[6].trim() + "-" +$L[7].trim()
    
        #10 = Host
        $HName=$L[10].trim()
        
        #Escreve resultado dentro do arquivo de saída
        "$IP`t$Mac`t$HName" >>  $Arquivo_Saida
    
    }
    
    

    O que faço é ler linha por linha do arquivo.

    A cada linha eu quebro a linha para dentro de um array onde cada elemento está entre "-", o MAC complicou porque ele é separado por "-".

    Também precisei fazer um "Trim" em cada elemento pois tinha espaço em branco sobrando.

    No final eu junto tudo separando cada atributo por TAB (`t).


    Fábio de Paula Junior

    • Sugerido como Resposta Jhonatan Morais sábado, 23 de março de 2013 05:38
    • Marcado como Resposta Warley Eric segunda-feira, 25 de março de 2013 11:19
    quinta-feira, 21 de março de 2013 17:30
    Moderador
  • Este script do Fábio funciona perfeitamente!
    sábado, 23 de março de 2013 05:39