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)
Endif
Cetin 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