none
Recuperar o Gateway. RRS feed

  • Pergunta

  • Prezados colegas;

    Tenho um script de logon que faz um inventario das maquinas e o sistema faz um histórico de acesso e movimentação das maquinas pelas redes da empresa. 

    Porem agora estou com um problema com os notebook acessando wifi.

    Precisaria de alguma forma pegar o gateway da rede 172.16.16.1/24 que ai eu já saberia em que rede esta o notebook.

    Ai esta o problema como eu fazer isso no vbs?

    Teria como fazer um tracert no vbs e so recuperar a 2ª linha que seria o gateway da rede ?


    Fico no aguardo,
    Valeu.

    sábado, 10 de novembro de 2012 04:11

Respostas

  • Tente este VBScript, se não funcionar post a saida do seu tracert aqui.

    Veja se o comando tracert (Primeira linha) está adequando a sua necessidade.

    .VBS

    strCMD = "tracert -h 2 172.16.16.1"
    
    strSaida = execStdOut(strCMD)
    
    arrLinhas = split(strSaida,vbcrlf )
    
    for each Linha in arrLinhas
    	if Mid(Linha,3,1)="2" then
    		'wscript.echo Linha
    		arrResultado = split(trim(Linha)," ")
    		strResultado=arrResultado(ubound(arrResultado))
    		exit for
    	end if
    
    next
    
    wscript.echo strResultado
    
    Function execStdOut(cmd)
       Dim goWSH : Set goWSH = CreateObject( "WScript.Shell" ) 
       Dim aRet: Set aRet = goWSH.exec(cmd)
       execStdOut = aRet.StdOut.ReadAll()
    End Function 

    Ao final do script a variavel strResultado vai ter o IP do segundo salto.


    Fábio de Paula Junior

    • Marcado como Resposta Fgkammers segunda-feira, 12 de novembro de 2012 13:28
    sábado, 10 de novembro de 2012 11:28
    Moderador

Todas as Respostas

  • Tente este VBScript, se não funcionar post a saida do seu tracert aqui.

    Veja se o comando tracert (Primeira linha) está adequando a sua necessidade.

    .VBS

    strCMD = "tracert -h 2 172.16.16.1"
    
    strSaida = execStdOut(strCMD)
    
    arrLinhas = split(strSaida,vbcrlf )
    
    for each Linha in arrLinhas
    	if Mid(Linha,3,1)="2" then
    		'wscript.echo Linha
    		arrResultado = split(trim(Linha)," ")
    		strResultado=arrResultado(ubound(arrResultado))
    		exit for
    	end if
    
    next
    
    wscript.echo strResultado
    
    Function execStdOut(cmd)
       Dim goWSH : Set goWSH = CreateObject( "WScript.Shell" ) 
       Dim aRet: Set aRet = goWSH.exec(cmd)
       execStdOut = aRet.StdOut.ReadAll()
    End Function 

    Ao final do script a variavel strResultado vai ter o IP do segundo salto.


    Fábio de Paula Junior

    • Marcado como Resposta Fgkammers segunda-feira, 12 de novembro de 2012 13:28
    sábado, 10 de novembro de 2012 11:28
    Moderador
  • Prezado Fabio;

    Perfeito, muito obrigado !

    obs. em algumas versões do windows no final da linha vem um carácter estranho e resolvi pegar apos o ultimo "s"
    arrResultado = split(trim(Linha),"s")

    • Editado Fgkammers segunda-feira, 12 de novembro de 2012 16:34 Observação
    segunda-feira, 12 de novembro de 2012 13:29