PUBLICIDADE
Este código tem nota
10

Autor

dinossauro

Humberto Henrique da Silva Cancelinha

membro deste setembro de 2008

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

Você gostou das mudanças no layout aqui do site?

Como converter um endereço IP em hexadecimal e vice-versa


Os verbos TCP-IP são passados, no COBOL, via CALL 'EZASOKET' USING.

Os endereços IP devem ser informados em hexadecimal, numa FULLWORD, para o progarama EZASOKET.

Este código converte um endereço TCP-IP do formato 999.999.999.999 para uma FULLWORD, e vice-versa.
ID           DIVISION.
       PROGRAM-ID.  SWXTCPIP.
       AUTHOR.      HUMBERTO HENRIQUE CANCELINHA.
      * SUBROTINA   Converte um endereco IP, do formato:
      *             1 - hexadecimal para o formato NNN.NNN.NNN.NNN. ou
      *             2 - do formato NNN.NNN.NNN.NNN para o hexadecimal
      * DATA        02 de maio de 2007
      * OBJETIVO    1 - Recebe um endereco IP em HEXA ou NNN.NNN.NNN.NNN
      *             2 - Converte para o formato oposto ao recebido.
      *             3 - Devolve o IP convertido.
      *
      *-----------------------------------------------------------------
      *            HISTORICO DAS MANUTENCOES
      * ---------- -----------------------------------------------------
      * ANALISTA   DESCRICAO
      *CANCELINHA  Permitir a conversao do formato hexa para o formato
      *            NNN.NNN.NNN.NNN e vice-versa.
      *-----------------------------------------------------------------
       ENVIRONMENT                        DIVISION.
       CONFIGURATION                      SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT                  IS       COMMA.
       DATA                               DIVISION.
       WORKING-STORAGE                    SECTION.
       01  FILLER.
           03  W-ALFA.
               05  W-ALFA1                PIC  9(03).
               05  FILLER                 PIC  X(01)  VALUE  '.'.
               05  W-ALFA2                PIC  9(03).
               05  FILLER                 PIC  X(01)  VALUE  '.'.
               05  W-ALFA3                PIC  9(03).
               05  FILLER                 PIC  X(01)  VALUE  '.'.
               05  W-ALFA4                PIC  9(03).
           03  W-FULL.
               05  W-F1                   PIC  X(01).
               05  W-F2                   PIC  X(01).
               05  W-F3                   PIC  X(01).
               05  W-F4                   PIC  X(01).
           03  W-BINARY                   PIC  9(04)  COMP.
           03  FILLER                     REDEFINES   W-BINARY.
               05  W-B1                   PIC  X(01).
               05  W-B2                   PIC  X(01).
      *-----------------------------------------------------------------
       LINKAGE                            SECTION.
       01  LK-IP-HEXA                     PIC  X(04).
       01  LK-IP-ALFA                     PIC  X(15).
      *-----------------------------------------------------------------
       PROCEDURE    DIVISION              USING    LK-IP-HEXA
                                                   LK-IP-ALFA.
      *             Para converter de hexadecimal para NNN.NNN.NNN.NNN:
      *             LK-IP-HEXA deve conter o IP em hexadecimal
      *             LK-IP-ALFA deve conter SPACES ou LOW-VALUES
      *             A rotina retorna o IP convertido em LK-IP-ALFA.
      *
      *             Para converter de NNN.NNN.NNN.NNN para hexadecimal:
      *             LK-IP-HEXA deve conter SPACES ou LOW-VALUES
      *             LK-IP-ALFA deve conter o IP NNN.NNN.NNN.NNN.
      *             A rotina retorna o IP convertido em LK-IP-HEXA.
      *-----------------------------------------------------------------

           IF  LK-IP-ALFA                 EQUAL    SPACES
           OR  LK-IP-ALFA                 EQUAL    LOW-VALUES
               MOVE LK-IP-HEXA            TO       W-FULL
               MOVE ZEROS                 TO       W-BINARY
               MOVE W-F1                  TO       W-B2
               MOVE W-BINARY              TO       W-ALFA1
               MOVE W-F2                  TO       W-B2
               MOVE W-BINARY              TO       W-ALFA2
               MOVE W-F3                  TO       W-B2
               MOVE W-BINARY              TO       W-ALFA3
               MOVE W-F4                  TO       W-B2
               MOVE W-BINARY              TO       W-ALFA4
               MOVE W-ALFA                TO       LK-IP-ALFA
               GOBACK.

           MOVE     LK-IP-ALFA            TO       W-ALFA.
           MOVE     SPACES                TO       W-FULL.
           MOVE     W-ALFA1               TO       W-BINARY.
           MOVE     W-B2                  TO       W-F1.
           MOVE     W-ALFA2               TO       W-BINARY.
           MOVE     W-B2                  TO       W-F2.
           MOVE     W-ALFA3               TO       W-BINARY.
           MOVE     W-B2                  TO       W-F3.
           MOVE     W-ALFA4               TO       W-BINARY.
           MOVE     W-B2                  TO       W-F4.
           MOVE     W-FULL                TO       LK-IP-HEXA.

           GOBACK.
      *====================== PROGRAM END ==============================





      *================ MANUAL DE USO DA ROTINA ========================

1 - Definir os campos HEXA e ALFA.
    HEXA he uma FULLWORD para endereco IP em formato HEXADECIMAL.
         01 AX-HEXA-X  PIC X(04).

    ALFA he um campo alfanumerico, com 15 bytes, para endereco IP no
         formato NNN.NNN.NNN.NNN
         01 AX-ALFA-X  PIC X(15).

2 - Para converter de HEXA para NNN.NNN.NNN.NNN:
    . AX-HEXA-X deve conter o endereco IP em hexadecimal
    . AX-ALFA-X deve conter o SPACES ou LOW-VALUES.
    . A rotina devolve o IP convertido em AX-ALFA-X.

    Para converter de NNN.NNN.NNN.NNN para HEXA:
    . AX-HEXA-X deve conter o SPACES ou LOW-VALUES
    . AX-ALFA-X deve conter o endereco IP no formato NNN.NNN.NNN.NNN.
    . A rotina devolve o IP convertido em AX-HEXA-X.

3 - Fazer a chamada com CALL estatico.

    CALL 'SWXTCPIP'  USING  AX-HEXA-X
                            AX-ALFA-X.

Sim   Não   Este código foi útil para você?
NotaComentário
10
tiger comentou em 6/8/2009

útil

muito útil
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.