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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
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. |
Você pode se interessar

Notícias
5 visualizações
Notícias
5 visualizações
Promoções de Jogos do Final de Semana (06/12)
Carlos L. A. da Silva - 6 de dezembro de 2019Confira as melhores ofertas de jogos de PC para o final de semana.

Dicas
9 visualizações
Dicas
9 visualizações
Como bloquear trolls no Twitter em larga escala
Carlos L. A. da Silva - 4 de dezembro de 2019Ninguém está livre de cair na mira de uma horda virtual e saber se defender é fundamental.

Artigos
12 visualizações
Artigos
12 visualizações
Conheça a diferença entre Inteligência Artificial, Aprendizado de Máquina e Aprendizado Profundo
Carlos L. A. da Silva - 30 de novembro de 2019Na linguagem coloquial, esses termos até se confundem mas, tecnicamente, não são a mesma coisa.
Mais publicações

Notícias
19 visualizações
19 visualizações
Promoções de Jogos do Final de Semana (29/11) – Edição da Black Friday
Carlos L. A. da Silva - 29 de novembro de 2019
Dicas
18 visualizações
18 visualizações
Como aproveitar ao máximo a Área de Transferência do Windows 10
Carlos L. A. da Silva - 28 de novembro de 2019
Artigos
45 visualizações
45 visualizações

Notícias
21 visualizações
21 visualizações