Função para o endereço MAC da placa de rede

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Função para o endereço MAC da placa de rede

Mensagem por Clipper »

Fiz essa funçãozinha simples para pegar o endereço MAC da placa de rede. Isso serve para várias coisas, inclusive proteção contra cópia pirata já que o endereço MAC quase impossivel de existir duplicado.

Precisa da Clipper Tools, mas dá pra fazer sem ela.

Para compilar e linkar.

CLIPPER MAC
RTLINK FI MAC LIB CT

Código: Selecionar todos

*------------------*
// Marcelo Mendes //
*------------------*
// Funcao para capturar o endereco MAC da placa de rede

CLS
RUN IPCONFIG /ALL >RETORNO.MAC
DBCREATE("MAC.DBF",{{"MAC","C",254,0}})
USE MAC
APPEND FROM RETORNO.MAC SDF
DBGOTOP()
TEMMAC=.F.
DO WHIL .NOT. EOF()
   IF NUMAT("-",MAC)=5
      WK=AT("-",MAC)
      MMAC=SUBSTR(MAC,WK-2,17)
      TEMMAC=.T.
   ENDIF
   SKIP
ENDDO
IF TEMMAC=.F.
   @ 10,00 SAY "Nenhum MAC encontrado..."
ELSE
   @ 10,00 SAY "Endereco MAC : "+MMAC
ENDIF
FERASE("MAC.DBF")
FERASE("RETORNO.MAC")
INKEY(0)
RETURN
Para quem não usa ou não quer usar a CT, basta incluir a função abaixo e retirar a CT da linha do Rtlink

Código: Selecionar todos

*-------------------------*
 FUNCTION NUMAT(WCHR,WSTR)
*-------------------------*
CT=0
FOR I=1 TO LEN(WSTR)
    IF SUBSTR(WSTR,I,1)=WCHR
       CT++
    ENDIF
NEXT
RETURN(CT)
Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Responder