1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Duvida Saber se um ip está off ou on

Discussão em 'Progress 4GL' iniciado por lwazevedo, Outubro 20, 2014.

  1. lwazevedo

    lwazevedo Membro Ativo

    Boa tarde.

    Caros,

    Gostaria de saber se existe algum comando que eu possar identificar se um determinado ip está off ou on via progress, no casso meu servidor é linux.

    tentei usar o os-command silent value(comando linux). mas não obtive sucesso pq este método não me retorna nenhum valor.

    se alguém poder me ajudar agradeço.
  2. elmo

    elmo Membro Ativo

  3. lwazevedo

    lwazevedo Membro Ativo

    Elmo foi de grande ajuda sim, mas acabei fazendo desta forma.

    Código:
    DEFINE VARIABLE vch-retorno   AS CHARACTER.
        DEFINE VARIABLE vch-comando   AS CHARACTER.
        DEFINE VARIABLE vch-comando_1 AS CHARACTER.
        DEFINE VARIABLE vch-nomArq    AS CHARACTER.
        DEFINE VARIABLE vch-linha     AS CHARACTER FORMAT "x(300)".
        DEFINE VARIABLE vin-contLin   AS INTEGER.
        DEFINE VARIABLE vlg-achou     AS LOG.
     
        ASSIGN
            vch-retorno   = ""
            vch-nomArq    = "/u/tmp/valida_ip_ws.txt"
            vch-comando   = " ping -w 2 -q -c 1 "
            vch-comando_1 = " > "
            vch-comando   = vch-comando + vch-ipPcLoja +  vch-comando_1 + vch-nomArq.
         
        UNIX SILENT VALUE (vch-comando).
         
        IF SEARCH(vch-nomArq) = ? THEN DO:
            vch-retorno = "Arquivo de Ip valido, não encontrado. Favor comunicar a TI.".
            LEAVE.
        END.
    
        INPUT FROM  value(vch-nomArq)  NO-CONVERT.
           
        IF ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
            vch-retorno = "Erro ao carregar o arquivo de Ip valido. Favor comunicar a TI .".
            LEAVE.
        END.
         
        REPEAT WHILE NOT vlg-achou:
    
            IMPORT UNFORMATTED vch-linha.
            vin-contLin = vin-contLin + 1.
    
            IF vin-contLin = 4 THEN
                IF REPLACE(SUBSTRING(vch-linha,36,3),"%","") = "100" THEN DO:
                    ASSIGN vlg-achou   = TRUE
                        vch-retorno = "Servidor fora do ar. favor comunicar a TI.".
                        LEAVE.
                END.
                ELSE DO:
                    ASSIGN
                        vlg-achou   = TRUE
                        vch-retorno = "".
                         LEAVE.
                END.
            ELSE NEXT.
                            
        END. 
         
            
    valeu.

Compartilhe esta Página