none
Gerar arquivo de Log de uma conexão telnet RRS feed

  • Pergunta

  • Boa tarde Galera.

    Ba tche estou eu aqui com mais uma grande briga, como posso fazer para gerar um script que abra uma conexão telnet com dois servidores, em portas tipo 53, 88 e 135 por exemplo, e assim que a conexão seja estabelecida, ele gere um log informando ok conexão fecha, ou erro  conexão falhou, com um detalhe, assim que ele feche uma conexão com sucesso, e gere a informação no log, ele de um kill na conexão para que a mesma não fique aberta.

    Alguém tem alguma idéia galera.


    Obrigado pela força.

     

    • Editado Marcelo TI quarta-feira, 5 de agosto de 2009 20:09
    quarta-feira, 5 de agosto de 2009 16:59

Respostas

  • Olá,

    Você teria que copiair a dll para a maquina e adicionar a linha abaixo no script:
    Mas isso é feito apenas uma vez, talvez vale a pena você executar nesses servidores na mão e pronto.

    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "regsvr32.exe c:\windows\system32\socket.dll"

    Onde c:\windows\system32 é o diretorio que estaria a dll.

    Para adicionar no seu script você terá que alterar a linha abaixo:

    Set OutPutFile = FileSystem.CreateTextFile("Telnet.txt", True)

    Para a linha que tenha o caminho da pasta do seu script:

    Set OutPutFile = FileSystem.CreateTextFile(strLog1 & "\TSTNivel5.txt", True)


    Até mais,

    Jesiel

    Obs.: Se útil, classifique



    • Marcado como Resposta Marcelo TI sábado, 8 de agosto de 2009 16:53
    quarta-feira, 5 de agosto de 2009 20:56

Todas as Respostas

  • Olá,

    Fiz umas modifações em um script, porém você irá precisar de uma dll de sockets

    Faça o seguinte:

    1 - Faça o download da dll (w3Sockets) no site: http://tech.dimac.net/default3.asp?M=FreeDownloads/Menu.asp&P=FreeDownloads/FreeDownloadsstart.asp

    2 - Tem um executavel que registra a dll no download.

    3 - Execute o script abaixo:

    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")

    Set OutPutFile = FileSystem.CreateTextFile("Telnet.txt", True)
    OutPutFile.WriteLine "TESTE DE TELNET " & now & VBCRLF

    fCheckExchange
    OutPutFile.Close
    Function fCheckExchange()
    Dim oSocket, iErr, sSocketText
    sSocketText = ""
    Set oSocket = CreateObject("Socket.TCP")
    oSocket.DoTelnetEmulation = True
    oSocket.TelnetEmulation = "TTY"
    oSocket.Host = "10.0.0.1:53"
    On Error Resume Next
    oSocket.Open
    iErr = Err.Number
    If iErr <> 0 Then
     fCheckExchange = 0
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: PROBLEMA "  & VBCRLF
     Exit Function
    End If
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: OK "  & VBCRLF
    End Function



    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quarta-feira, 5 de agosto de 2009 20:15
  • Ok Jesiel

    Vou fazer o um teste agora tche..

    Mais me gera duas duvidas, funcionado, como posso colocar esse codigo dentro do outro que estavamos conversando, e a segunda seria, como fazer o script registrar a dll, de forma automatica na estação que o mesmo for rodado ?

    Obrigado mais uma vez

    Abraço.
    quarta-feira, 5 de agosto de 2009 20:30
  • Ba Jeseil

    Vc é o cara mesmo, rolou da forma que eu quero mesmo, para conexão com sucesso, no caso de uma que não houve sucesso ele so gravou as informação TESTE DE TELNET 5/8/2009 17:41:56, e nao colocou a informaçao que nao conseguiu fechar mais ate ai tudo bem, mais agora fica as duas duvidas que coloquei antes, e um outra que se gerou no teste, são 4 servidores que irei colocar, com 5 portas cara cada um, ai que entra a questão, como fazer o mesmo sair no mesmo arquivo de log os 4 servidores com as 5 portas, separados por ****** ou _____ ou -------.

    Abraço valeu pela força.
    quarta-feira, 5 de agosto de 2009 20:45
  • Ba Jesiel

    Esquece a questão da gravação do log se foi ok ou nao que eu disse que ele so estava grando o ok e nao o sem sucesso, eu tava olhando outro arquivo heheh desculpa ai.
    quarta-feira, 5 de agosto de 2009 20:50
  • Olá,

    Você teria que copiair a dll para a maquina e adicionar a linha abaixo no script:
    Mas isso é feito apenas uma vez, talvez vale a pena você executar nesses servidores na mão e pronto.

    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "regsvr32.exe c:\windows\system32\socket.dll"

    Onde c:\windows\system32 é o diretorio que estaria a dll.

    Para adicionar no seu script você terá que alterar a linha abaixo:

    Set OutPutFile = FileSystem.CreateTextFile("Telnet.txt", True)

    Para a linha que tenha o caminho da pasta do seu script:

    Set OutPutFile = FileSystem.CreateTextFile(strLog1 & "\TSTNivel5.txt", True)


    Até mais,

    Jesiel

    Obs.: Se útil, classifique



    • Marcado como Resposta Marcelo TI sábado, 8 de agosto de 2009 16:53
    quarta-feira, 5 de agosto de 2009 20:56
  • Ba Jesiel vamos por partes:

    Legal é uma boa, mais como eu faço para essa copia ocorrer pegando essa dll de algum ponto na rede, lembrando que o usuario ira rodar o processo para gerar os log`s para mim tche e ele nao tem direito de gravar no system32, ai teria que usar o runas... como fazer uma copia com o runas para depois ele rodar essas linhas abaixo.

    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "regsvr32.exe c:\windows\system32\socket.dll"

    Certo compreendi, e ja coloquei e ele rolou legal, e ja vi como colocar ele naquele outro scritp que estavamos conversando.

    Set OutPutFile = FileSystem.CreateTextFile(strLog1 & "\TSTNivel5.txt", True)

    Mais ai entra duas questões, assim ele iria gravar o conteudo de 4 server no mesmo arquivo ne, eu teria que colocar assim ? >> "\TSTNivel5.txt"
    E como eu posso fazer ele consultar os outros server, tentei
    oSocket.Host = "10.0.0.1:88"
    oSocket.Host = "10.0.0.1:53"
    oSocket.Host = "10.0.0.2:88"
    oSocket.Host = "10.0.0.2:53"

    mais ele nao registra todos...

     

     

    quarta-feira, 5 de agosto de 2009 21:47
  • Olá,

    Verifique o script abaixo:

    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")

    Set OutPutFile = FileSystem.OpenTextFile("telnet.txt", 8, True, 0)

    'Set OutPutFile = FileSystem.CreateTextFile("Telnet.txt", True)
    OutPutFile.WriteLine "TESTE DE TELNET " & now & VBCRLF

    arrServers = "192.168.0.155,192.168.0.115,192.168.0.10"

    arrServers = split(arrServers,",")

    For x = 0 to UBOUND(arrServers)
       fCheckExchange arrServers(x)
    Next

    OutPutFile.Close


    Function fCheckExchange(endereco)

    Dim oSocket, iErr, sSocketText,strPorta

    OutPutFile.WriteLine "SERVIDOR " & endereco & VBCRLF
    strPorta = "53"
    sSocketText = ""
    Set oSocket = CreateObject("Socket.TCP")
    oSocket.DoTelnetEmulation = True
    oSocket.TelnetEmulation = "TTY"
    oSocket.Host = endereco & ":" & strPorta
    On Error Resume Next
    oSocket.Open
    iErr = Err.Number
    If iErr <> 0 Then
     fCheckExchange = 0
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: PROBLEMA "  & VBCRLF
     Exit Function
    End If
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: OK "  & VBCRLF
    End Function


    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    quinta-feira, 6 de agosto de 2009 11:39
  • Ba Jesiel, Boa noite..

    Show em agora vai pra um arquivo único e para pra vários servidores, só que tentei por  fazer ele ler portas distintas de duas formas, seguindo a lógica de array que vc me ensinou um dia desse e não rolou, ai criei mais strporta, mais mesmo assim ele não realiza o teste com as demais portas, aonde estou errando meu amigo..

    Abraço valeu pela força.

    Script com arry=========================================================================

    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.OpenTextFile("c:\telnet.txt", 8, True, 0)
    OutPutFile.WriteLine "TESTE DE TELNET " & now & VBCRLF

    arrServers = "192.168.0.155,192.168.0.115,192.168.0.10"
    arrServers = split(arrServers,",")
    For x = 0 to UBOUND(arrServers)
       fCheckExchange arrServers(x)
    Next

    porta = "80,53.110"
    porta = split(porta,",")
    For x = 0 to UBOUND(porta)
       fCheckExchange porta(x)
    Next

    OutPutFile.Close

    Function fCheckExchange(endereco)
    Function fCheckExchange(porta)

    Dim oSocket, iErr, sSocketText,porta 'strPorta

    OutPutFile.WriteLine "Porta:" & porta & "Servidor:" & endereco & vbCrLf
    sSocketText = ""
    Set oSocket = CreateObject("Socket.TCP")
    oSocket.DoTelnetEmulation = True
    oSocket.TelnetEmulation = "TTY"
    oSocket.Host = endereco & ":" & porta
    On Error Resume Next
    oSocket.Open
    iErr = Err.Number
    If iErr <> 0 Then
     fCheckExchange = 0
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: PROBLEMA "  & VBCRLF
     Exit Function
    End If
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: OK "  & VBCRLF
    End Function

    Script com mais strporta=========================================================================

    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
    Set OutPutFile = FileSystem.OpenTextFile("telnet.txt", 8, True, 0)
    OutPutFile.WriteLine "TESTE DE TELNET " & now & VBCRLF

    arrServers = "192.168.0.155,192.168.0.115,192.168.0.10"
    arrServers = split(arrServers,",")

    For x = 0 to UBOUND(arrServers)
       fCheckExchange arrServers(x)
    Next

    OutPutFile.Close

    Function fCheckExchange(endereco)

    Dim oSocket, iErr, sSocketText,strPorta

    OutPutFile.WriteLine "SERVIDOR " & endereco & VBCRLF
    strPorta = "53"
    strPorta1 = "80"
    strPorta2 = "110
    sSocketText = ""
    Set oSocket = CreateObject("Socket.TCP")
    oSocket.DoTelnetEmulation = True
    oSocket.TelnetEmulation = "TTY"
    oSocket.Host = endereco & ":" & strPorta & strPorta1 & strPorta2
    On Error Resume Next
    oSocket.Open
    iErr = Err.Number
    If iErr <> 0 Then
     fCheckExchange = 0
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: PROBLEMA "  & VBCRLF
     Exit Function
    End If
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: OK "  & VBCRLF
    End Function

    quinta-feira, 6 de agosto de 2009 22:40
  • Olá,

    Foi quase... Faça os testes no script abaixo:


    Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")

    Set OutPutFile = FileSystem.OpenTextFile("telnet.txt", 8, True, 0)

    'Set OutPutFile = FileSystem.CreateTextFile("Telnet.txt", True)
    OutPutFile.WriteLine "TESTE DE TELNET " & now & VBCRLF

    arrServers = "192.168.0.155,192.168.0.115,192.168.0.10"
    arrServers = split(arrServers,",")
    arrPortas = "80,53,110"
    arrPortas = split(arrportas,",")



    For x = 0 to UBOUND(arrServers)
       For y = 0 to UBOUND(arrportas)
          fCheckExchange arrServers(x) ,arrPortas(y)
       Next
    Next

    OutPutFile.Close


    Function fCheckExchange(endereco,Porta)

    Dim oSocket, iErr, sSocketText,strPorta

    OutPutFile.WriteLine "SERVIDOR " & endereco & " PORTA: " & porta & VBCRLF
    sSocketText = ""
    Set oSocket = CreateObject("Socket.TCP")
    oSocket.DoTelnetEmulation = True
    oSocket.TelnetEmulation = "TTY"
    oSocket.Host = endereco & ":" & Porta

    On Error Resume Next
    oSocket.Open
    iErr = Err.Number
    If iErr <> 0 Then
     fCheckExchange = 0
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: PROBLEMA "  & VBCRLF
     Exit Function
    End If
    OutPutFile.WriteLine " TESTE REALIZADO COM SUCESSO. STATUS: OK "  & VBCRLF
    End Function


    Até mais,

    Jesiel

    Obs.: Se útil, classifique



    sexta-feira, 7 de agosto de 2009 11:26
  • Ba Jesiel

    Boa tarde.

    foi por pouco mesmo em meu amigo.. rolou legal, valeu pela força

    Braço
    sábado, 8 de agosto de 2009 16:53
  • Jesiel,

    Poderia me auxiliar? não estou conseguindo encontrar a DLL(socket.dll) que é necessária para utilizar o "socket.TCP".

    quinta-feira, 9 de março de 2017 17:13