Bueno, pido disculpas si me habia olvidado de este tema y para no ser egoista aqui dejo la forma en que solucione mi problema.
Antes que nada quiero aclarar que el proyecto lo desarrolle en Visual Basic 6.0 y funciona (a mi modo de ver) de maravilla, para el uso que necesitaba me quedo perfecto y el codigo puede ser utilizado para muchas otras cosas.
Ademas si queres cambiar los 6 primeros pares de la dirección MAC (lo que cambiaria el propietario de tu tarjeta) podes usar esta lista:
http://standards.ieee.org/regauth/oui/oui.txt
Y digamos tomar los identificadores de unas cuantas compañias que te gusten y seleccionarlas a la suerte a la hora de generar la nueva MAC.
Por ej. la que pusiste en tu ejemplo (00-08-74-4C-7F-1D) viene siendo propiedad de DELL:
MAC 00-08-74 (hex) 000874 (base 16) | Propietario Dell Computer Corp. One Dell Way Round Rock TX 78682 UNITED STATES |
esto que dice Vlad es algo que sirve de mucho, de hecho este listado
http://svcommunity.org/redir/?http://standards.ieee.org/regauth/oui/oui.txt
lo tome de base para relalizar mi proyecto.
ahora la explicacion:
Grax a la Wiki:
"En redes de computadoras la dirección MAC (Medium Access Control address o dirección de control de acceso al medio) es un identificador de 48 bits (6 bytes) que corresponde de forma única a una tarjeta o interfaz de red. Es individual, cada dispositivo tiene su propia dirección MAC determinada y configurada por el IEEE (los últimos 24 bits) y el fabricante (los primeros 24 bits) utilizando el OUI. La mayoría de los protocolos que trabajan en la capa 2 del modelo OSI usan una de las tres numeraciones manejadas por el IEEE: MAC-48, EUI-48, y EUI-64 las cuales han sido diseñadas para ser identificadores globalmente únicos. No todos los protocolos de comunicación usan direcciones MAC, y no todos los protocolos requieren identificadores globalmente únicos.
Las direcciones MAC son únicas a nivel mundial, puesto que son escritas directamente, en forma binaria, en el hardware en su momento de fabricación. Debido a esto, las direcciones MAC son a veces llamadas Quemadas En Las Direcciones (BIA).
La dirección MAC es un número único de 48 bits asignado a cada tarjeta de red. Se conoce también como la dirección física en cuanto identificar dispositivos de red."
Direcciones MAC: definidas por el IEEE (Instituto de Ingenieros en Electricidad y Electrónica), que asigna intervalos de direcciones para cada fabricante de tarjetas de redes. Están inscriptas en los chips de las tarjetas; cada tarjeta posee una dirección MAC que le es propia y, por lo tanto, única en la red.
1) Debemos entender la composicion de la direccion MAC
esta compuesta por 12 caracteres
ejemplo "00:04:5A:3D:31:39"
de los cuales los primeros 6 son asignados por el IEEE y corresponden a la compañia fabricante de la tarjeta de red (PCI, PCMCIA, USB, etc)
en este caso "00:04:5A" corresponde a Linksys
y los restantes 6 caracteres vendrian siendo la serie del Adaptador
en este caso "3D:31:39" que es asignado por el fabricante.
ahora bien, el codigo esta algo explicado porque en esto soy algo "POLLO"
solo se va a necesitar en nuestro proyecto:
1 Form ("Form1")
2 cuadros de texto ("text1" y "text2")
1 Boton ("Command1")
'Ejemplo = 00:04:5A:3D:31:39
'Caracteres Base HEX = 1234567890 - ABCDEF
Private Sub Command1_Click()
Dim mien As String
Dim mien2 As String
Dim ptos As String
'se asigna a la variable ptos los dos puntos ":"
ptos = ":"
'mien toma el resultado de la funcion fabAle y luego
'extrae solamente el primer caracter a la izquierda
'ejemplo, si el fabAle es igual a "2431"
'el valor de mien pasa a ser "2"
mien = Left(fabAle, 1)
'y segun el ejemplo anterior con mien
'si mien es igual a "2", entonces mien tomara
'el valor de "00:11:50" perteneciente a Belkin
' y el cuadro de texto "text2" toma el valor "Belkin"
Select Case mien
Case Is = "1"
mien = "00:04:5A" '00-04-5A Linksys
Text2.Text = "Linksys"
Case Is = "2"
mien = "00:11:50" '00-11-50 Belkin
Text2.Text = "Belkin"
Case Is = "3"
mien = "00:11:5C" '00-11-5C Cisco
Text2.Text = "Cisco"
Case Is = "4"
mien = "00:19:0C" '00-19-0C Encore
Text2.Text = "Encore"
End Select
'luego pegamos los valores en el cuadro de texto "text1"
'"00" & ptos & "04" & ptos & "5A"
'primero se pega el valor de mien seguido por los dos puntos
'quedando de esta manera "00:11:50:"
'luego un numero aleatorio "00:11:50:1"
'luego una letra aleatoria "00:11:50:1A"
'luego los dos puntos "00:11:50:1A:"
'luego un numero aleatorio "00:11:50:1A:2"
'luego una letra aleatoria "00:11:50:1A:2B"
'luego los dos puntos "00:11:50:1A:2B:"
'luego un numero aleatorio "00:11:50:1A:2B:4"
'luego una letra aleatoria "00:11:50:1A:2B:4C"
'y al final nos queda esto "00:11:50:1A:2B:4C", ese es
'nuestra direccion MAC :)
Text1.Text = mien & _
ptos & Left(numAle, 1) & Left(letraAle, 1) & _
ptos & Left(numAle, 1) & Left(letraAle, 1) & _
ptos & Left(numAle, 1) & Left(letraAle, 1)
End Sub
'funcion para generar un aleatorio con los siguientes caracteres
'"ABCFEF" ya que vamos a generar un Hexadecimal
'ejemplo "DBCEFA"
Private Function letraAle() As String
Dim str$, i%, j%
Randomize
str = "ABCDEF"
For i = 1 To Len(str)
j = Int((Len(str) * Rnd) + 1)
letraAle = letraAle & Mid$(str, j, 1)
Next
End Function
'Funcion para generar un numero aleatorio con 10 digitos
'ejemplo "2583691470"
Private Function numAle() As String
Dim str$, i%, j%
Randomize
str = "0123456789"
For i = 1 To Len(str)
j = Int((Len(str) * Rnd) + 1)
numAle = numAle & Mid$(str, j, 1)
Next
End Function
'Funcion para generar un numero aleatorio con cuatro digitos
'que comprendan el 1 el 2 el 3 o el 4
'ejemplo "2431"
Private Function fabAle() As String
Dim str$, i%, j%
Randomize
str = "1234"
For i = 1 To Len(str)
j = Int((Len(str) * Rnd) + 1)
fabAle = fabAle & Mid$(str, j, 1)
Next
End Function
al final queda algo asi
Bueno, asi es como lo logre y me sirvio para el uso que queria darle
Por favor sean amables con los Comentarios porque ya dije que soy "POLLO" en esto de la programacion
Saludos