Como obtener la dirección MAC (dirección de la tarjeta Ethernet) ...
Uso:
direccion = MacAddress()
FUNCTION MacAddress Local pGUID,rGUID,lnSize Declare integer CoCreateGuid in 'OLE32.dll' ; string @pguid Declare integer StringFromGUID2 in 'OLE32.dll' ; string rguid, string @lpsz, integer cchMax pGUID=replicate(chr(0),16) rGUID=replicate(chr(0),80) If "5." $ OS() && 2000/XP Declare integer UuidCreateSequential in 'RPCRT4.dll' string @ Uuid Return substr( iif( UuidCreateSequential(@pGUID) = 0 ; and StringFromGUID2(pGUID,@rGUID,40) # 0, ; StrConv(left(rGUID,76),6), "" ), 26,12) Else Return substr( iif( CoCreateGuid(@pGUID) = 0 ; and StringFromGUID2(pGUID,@rGUID,40) # 0, ; StrConv(left(rGUID,76),6), "" ), 26,12) EndifCetin Basoz
Cada vez que ejecuto la rutina, la direccion resultante es distinta.
ResponderBorrar¿Es correcto?
Algo no anda bien con la funcion, no es posible que el Mac Address cambie cada vez que se ejecute.
ResponderBorrarEste codigo funciona correctamente, solo que te retorna todas las tarjetas de red que tiene el equipo.
ResponderBorrarFuente: http://www.tek-tips.com/viewthread.cfm?qid=756938
*!* Let's get the MAC Address(es)
LOCAL lcComputerName, loWMIService, loItems, loItem, lcMACAddress
lcComputerName = "."
loWMIService = GETOBJECT("winmgmts:\\" + lcComputerName + "\root\cimv2")
loItems = loWMIService.ExecQuery("Select * from Win32_NetworkAdapter",,48)
FOR EACH loItem IN loItems
lcMACAddress = loItem.MACAddress
IF !ISNULL(lcMACAddress)
? "MAC Address: " + loItem.MACAddress
?
ENDIF
ENDFOR
Cómo saber cuál de esas direcciones MAC (tarjetas de red o adaptadores) están usándose?
Borrar