¿Qué es una expresión regular para una dirección MAC?

Resuelto Xaisoft asked hace 13 años • 26 respuestas

En este formato:

3D:F2:C9:A6:B3:4F

o:

3D-F2-C9-A6-B3-4F
Xaisoft avatar Nov 24 '10 03:11 Xaisoft
Aceptado

El formato estándar (IEEE 802) para imprimir direcciones MAC-48 en un formato amigable para los humanos es seis grupos de dos dígitos hexadecimales, separados por guiones -o dos puntos :.

Entonces:

^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
netcoder avatar Nov 23 '2010 20:11 netcoder

Un poco duro para la vista, pero esto:

/^(?:[[:xdigit:]]{2}([-:]))(?:[[:xdigit:]]{2}\1){4}[[:xdigit:]]{2}$/

aplicará todos los dos puntos o todos los guiones para su notación MAC.

(Un enfoque de expresiones regulares más simple podría permitir A1:B2-C3:D4-E5:F6, por ejemplo, lo que lo anterior rechaza).

pilcrow avatar Nov 23 '2010 20:11 pilcrow

Esta expresión regular coincide con prácticamente todos los formatos de Mac, incluido el formato de Cisco, como0102-0304-abcd

^([[:xdigit:]]{2}[:.-]?){5}[[:xdigit:]]{2}$

Cadenas de ejemplo con las que coincide:

01:02:03:04:ab:cd
01-02-03-04-ab-cd
01.02.03.04.ab.cd
0102-0304-abcd
01020304abcd

¡El formato mixto también se combinará!

Vesselin Yanev avatar Jan 30 '2014 12:01 Vesselin Yanev