Dirección MAC
Posted: Thu Jan 23, 2014 4:54 pm
Saludos colegas.
Hace ya bastante tiempo, pregunté y pregunté en diversos foros, sobre como obtener la dirección MAC de la tarjeta de red de un equipo, con el propósito de evitar las copias no autorizadas de mis sistemas a otras computadoras. Esta necesidad me surgió del hecho de que, hasta la fecha, había estado usando una función que obtenía el número de serie del disco duro, pero este método tiene como inconveniente que si el cliente reformatea su disco duro (que pasa muy seguido dependiendo de la cantidad de clientes que uno tenga) te llama para que lo licencies de nuevo. Por supuesto, esto podría parecer una ventaja porque aprovechamos para cobrarle al cliente y obtenemos un ingreso extra, pero la verdad en mi caso, sopesando el esfuerzo beneficio y el tiempo gastado, no se justifica.
Busqué y busqué sin encontrar respuesta alguna. Bueno, desde ayer que tengo algo de tiempo disponible, retome el tema y me propuse hallar una solución. Luego de horas de ardua búsqueda, y como suele pasar a veces, encontré lo que parece ser una solución razonable en un site que tengo siempre en mis narices, la WIKIPEDIA, copio el enlace para aquellos que, como yo, desconocen un poco de este tema:
http://es.wikipedia.org/wiki/Direcci" onclick="window.open(this.href);return false;ón_MAC
Pues bien, por supuesto, resultado de esto, escribí la función, misma que pongo a disposición de todos, con el propósito de que sea usada y mejorada.
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
FUNC GetMAC
LOCAL cMacTxt , nMacIni , cMacId
SHELLEXECUTE( 0 , , "mac.bat" , , 0 , 0 )
cMacTxt := MEMOREAD('c:\mac.txt')
nMacIni := AT('-',cMacTxt)-2
cMacId := SUBSTR( cMacTxt , nMacIni , 17 )
RETURN( cMacId )
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
Aquí el contenido del archivo mac.bat
getmac > c:\mac.txt
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
Bueno, sería fantástico si alguien propusiera una solución para evitar la existencia del archivo mac.bat. Por supuesto se me ocurre que se puede verificar si el archivo existe y si no, por código se podría crear facilmente.
Esperando haber contribuido en algo, ya que Ustedes me ayudan muchísimo, cosa que les agradezco de corazón.
Mis sinceros saludos a todos.

Hace ya bastante tiempo, pregunté y pregunté en diversos foros, sobre como obtener la dirección MAC de la tarjeta de red de un equipo, con el propósito de evitar las copias no autorizadas de mis sistemas a otras computadoras. Esta necesidad me surgió del hecho de que, hasta la fecha, había estado usando una función que obtenía el número de serie del disco duro, pero este método tiene como inconveniente que si el cliente reformatea su disco duro (que pasa muy seguido dependiendo de la cantidad de clientes que uno tenga) te llama para que lo licencies de nuevo. Por supuesto, esto podría parecer una ventaja porque aprovechamos para cobrarle al cliente y obtenemos un ingreso extra, pero la verdad en mi caso, sopesando el esfuerzo beneficio y el tiempo gastado, no se justifica.
Busqué y busqué sin encontrar respuesta alguna. Bueno, desde ayer que tengo algo de tiempo disponible, retome el tema y me propuse hallar una solución. Luego de horas de ardua búsqueda, y como suele pasar a veces, encontré lo que parece ser una solución razonable en un site que tengo siempre en mis narices, la WIKIPEDIA, copio el enlace para aquellos que, como yo, desconocen un poco de este tema:
http://es.wikipedia.org/wiki/Direcci" onclick="window.open(this.href);return false;ón_MAC
Pues bien, por supuesto, resultado de esto, escribí la función, misma que pongo a disposición de todos, con el propósito de que sea usada y mejorada.
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
FUNC GetMAC
LOCAL cMacTxt , nMacIni , cMacId
SHELLEXECUTE( 0 , , "mac.bat" , , 0 , 0 )
cMacTxt := MEMOREAD('c:\mac.txt')
nMacIni := AT('-',cMacTxt)-2
cMacId := SUBSTR( cMacTxt , nMacIni , 17 )
RETURN( cMacId )
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
Aquí el contenido del archivo mac.bat
getmac > c:\mac.txt
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
Bueno, sería fantástico si alguien propusiera una solución para evitar la existencia del archivo mac.bat. Por supuesto se me ocurre que se puede verificar si el archivo existe y si no, por código se podría crear facilmente.
Esperando haber contribuido en algo, ya que Ustedes me ayudan muchísimo, cosa que les agradezco de corazón.
Mis sinceros saludos a todos.
