none
IP via e-mail RRS feed

  • Pergunta

  • Olá Pessoal,

    Possuo algumas redes que faço manutenção via Internet via "Conexão de Área de Trabalho Remota", e utilizo junto ao usuário um script que peguei aqui na lista para verificar o IP válido da Internet para entrar em algumas redes com IP dinâmico, conforme linhas abaixo:

    =================================================
    On Error Resume Next
    'SITE CHECKIP QUE SÓ RETORNA A STRING: Current IP Address: e o numero
    Const conURLSrc = "http://checkip.dyndns.org/"
    Set http = createobject("microsoft.xmlhttp")
    Set fso = CreateObject("Scripting.FileSystemObject")

    'METODO GET PARA BUSCAR A PAGINA
    http.open "GET",conURLSrc,False
    http.send
    htmlIP = http.responsetext
    Set regEx = new RegExp
    regEx.Global = True
    Regex.pattern =  "Current IP Address: ([0-9\.]*)"
    result = regEx.Test(htmlIP)
    Set Matches = regEx.Execute(htmlIP)
    For Each Match in Matches
            extIP = match.subMatches(0)
    Next
    wscript.ECHO "IP Externo: " & extIP

    =================================================

    O que preciso é que este script me envie um e-mail a cada 1h informando o IP e um nome desta rede que poderia inserir neste script, assim para saber de qual cliente é o IP.

    Teria como fazer esta inclusão neste script?

    Abraços

    Jairo

    domingo, 26 de julho de 2009 03:55

Respostas

  • Olá,

    Faça um teste no script abaixo:


    On Error Resume Next

    'altere essa variavel para cada cliente
    nomedohost = "cliente"

    Const conURLSrc = "http://checkip.dyndns.org/"
    Set http = createobject("microsoft.xmlhttp")
    Set fso = CreateObject("Scripting.FileSystemObject")

    'METODO GET PARA BUSCAR A PAGINA
    http.open "GET",conURLSrc,False
    http.send
    htmlIP = http.responsetext
    Set regEx = new RegExp
    regEx.Global = True
    Regex.pattern =  "Current IP Address: ([0-9\.]*)"
    result = regEx.Test(htmlIP)
    Set Matches = regEx.Execute(htmlIP)
    For Each Match in Matches
            extIP = match.subMatches(0)
    Next

    if Len(extIP ) > 0 then
       Envia_Alerta nomedohost, extIP
    Else
       wscript.echo "SEM Internet"
    End if



    Sub Envia_Alerta(cliente,ip)

     Set objEmail = CreateObject("CDO.Message")


    'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
     objEmail.From = "servidor@contoso.msft"
     objEmail.To = "jairo@teste.com.br"

     objEmail.Subject = "IP EXTERNO DO CLIENTE " & cliente
     objEmail.TextBody = "Computador: " & cliente & " DATA: " & now & "IP EXTERNO : " & ip

     objEmail.Configuration.Fields.Item _
          ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
     objEmail.Configuration.Fields.Item _
         ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1" '<-informe seu servidor smtp

     objEmail.Configuration.Fields.Item _
         ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
     objEmail.Configuration.Fields.Update
     objEmail.Send
    end sub


    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    • Marcado como Resposta Jairo_M_P domingo, 26 de julho de 2009 15:50
    domingo, 26 de julho de 2009 13:40

Todas as Respostas

  • Olá,

    Faça um teste no script abaixo:


    On Error Resume Next

    'altere essa variavel para cada cliente
    nomedohost = "cliente"

    Const conURLSrc = "http://checkip.dyndns.org/"
    Set http = createobject("microsoft.xmlhttp")
    Set fso = CreateObject("Scripting.FileSystemObject")

    'METODO GET PARA BUSCAR A PAGINA
    http.open "GET",conURLSrc,False
    http.send
    htmlIP = http.responsetext
    Set regEx = new RegExp
    regEx.Global = True
    Regex.pattern =  "Current IP Address: ([0-9\.]*)"
    result = regEx.Test(htmlIP)
    Set Matches = regEx.Execute(htmlIP)
    For Each Match in Matches
            extIP = match.subMatches(0)
    Next

    if Len(extIP ) > 0 then
       Envia_Alerta nomedohost, extIP
    Else
       wscript.echo "SEM Internet"
    End if



    Sub Envia_Alerta(cliente,ip)

     Set objEmail = CreateObject("CDO.Message")


    'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
     objEmail.From = "servidor@contoso.msft"
     objEmail.To = "jairo@teste.com.br"

     objEmail.Subject = "IP EXTERNO DO CLIENTE " & cliente
     objEmail.TextBody = "Computador: " & cliente & " DATA: " & now & "IP EXTERNO : " & ip

     objEmail.Configuration.Fields.Item _
          ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
     objEmail.Configuration.Fields.Item _
         ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1" '<-informe seu servidor smtp

     objEmail.Configuration.Fields.Item _
         ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
     objEmail.Configuration.Fields.Update
     objEmail.Send
    end sub


    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    • Marcado como Resposta Jairo_M_P domingo, 26 de julho de 2009 15:50
    domingo, 26 de julho de 2009 13:40
  • Jesiel,

    SHOW de bola, funcionou perfeitamente.

    Uma dúvida. Ele será enviado apenas uma vez quando executado?

    Abraços

    Jairo
    domingo, 26 de julho de 2009 15:49
  • Olá,

    Sim.. será executado apenas uma vez...

    Você pode utilizar o tarefas agendadas do windows para agendar a execução no periodo que você desejar.

    É bem tranquilo para utilizar, e funciona.



    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    segunda-feira, 27 de julho de 2009 11:59
  • Ok Jesiel,

    Desde já agradeço sua atenção novamente, pois pensei em deixar apenas no script.

    Vou seguir sua recomendação.

    Abraços

    Jairo
    segunda-feira, 27 de julho de 2009 17:04