Pegando o Mac Address via AdvPL

Olá pessoal.

Hoje irei mostrar como pegar a informação de Mac Address via AdvPL (Protheus).


Para pegar o Mac Address, primeiramente deve-se usar alguma estação Windows, pois é utilizado o comando getMac, da forma como foi desenvolvida sempre é retorna o primeiro Mac Address encontrado através de comando executado via AdvPL. Abaixo um print do alerta, porém retirei a parte do meio do texto.

Mac Address via AdvPL

Mac Address via AdvPL

Abaixo o código fonte utilizado:

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zPegaMac
Pegando o MAC Address de máquinas hospedeiras com Windows
@author Atilio
@since 23/09/2014
@version 1.0
	@example
	u_zPegaMac()
	@see https://terminaldeinformacao.com/advpl/
/*/

User Function zPegaMac()
	Local cComando	:= "getmac > "
	Local cDir			:= GetTempPath()
	Local cNomBat		:= "comando_mac.bat"
	Local cArquivo	:= "mac_address.txt"
	Local cMac			:= ""
	
	//Gravando em um .bat o comando
	MemoWrite(cDir + cNomBat, cComando + cDir + cArquivo)
	
	//Executando o comando através do .bat
	ShellExecute("OPEN", cDir+cNomBat, "", cDir, 0 )
	
	//Se existe o arquivo
	If File(cDir+cArquivo)
		ConOut("[zPegaMac] > Arquivo gerado.")
		
		//Gerando o MacAddress
		cMac := MemoRead(cDir + cArquivo)
		cMac := SubStr(cMac, RAt("=", cMac)+1, Len(cMac)) //Pegando a partir do ultimo igual
		cMac := SubStr(cMac, 1, At(" ", cMac)-1) //Pegando até o primeiro espaço
		cMac := StrTran(cMac, Chr(13)+Chr(10), "") //retirando os -enters-
	EndIf
	//Alert("|"+cMac+"|")
Return cMac

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação