首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表达48位MAC地址的各种标准和行业实践方法是什么?

表达48位MAC地址的各种标准和行业实践方法是什么?
EN

Network Engineering用户
提问于 2019-01-15 18:39:13
回答 1查看 246关注 0票数 5

我的团队构建了允许MAC地址作为用户输入的软件。这些地址通常以多种格式从各种平台复制和粘贴。

维基百科文档MAC地址注释约定如下:

标准格式(IEEE 802)用于打印EUI-48地址的人性化格式是六组由两个十六进制数字组成的组,按传输顺序(例如01-23-45-67-89-AB)由连字符(-)分隔。此表单也通常用于EUI-64 (例如01-23-45-67-89-AB-CD-EF)。其他约定包括六组由两个十六进制数字组成的用冒号(:)分隔(例如01:23:45:67:89:AB),三组由四个十六进制数字组成,用圆点(.)分隔。(例如0123.4567.89AB);再次按传输顺序排列。

虽然不是那么可读的,但常见的情况是看到MAC地址以原始形式输入:AAAABBBBCCCC

考虑到维基百科和其他地方记录的常见符号,我们使用正则表达式。

代码语言:javascript
复制
^(?:[0-9A-Fa-f]{2}([-: ]?))(?:[0-9A-Fa-f]{2}\1){4}[0-9A-Fa-f]{2}$|^(?:[0-9A-Fa-f]{4}\.){2}[0-9A-Fa-f]{4}$

若要匹配下列格式:

  • AAAABBBBCCCC
  • AA:AA:BB:BB:CC:CC
  • AA-AA-BB-BB-CC-CC
  • AAAA.BBBB.CCCC

最近有人向我介绍了带有格式化示例的MAC地址介绍一文,该文章介绍了以下格式的AAA.ABB.BBC.CCC,我们的regex不支持这种格式。

经过一些研究和googling搜索,我无法将这种格式归因于特定的供应商或源。在修改regex之前,我希望了解格式的来源。遗憾的是,上述文章来源不佳,是谷歌搜索MAC地址格式的第一批结果之一。

在我的研究中,我遇到了其他几种格式,我们的正则表达式不匹配。显然,有多种方法来表示一个48位的MAC地址.

表达48位MAC地址的各种标准和行业实践方法是什么?由于可能的话,可以在几个不同的地方用分隔符拆分12个字符串,所以我希望有一个给定格式的源代码。

EN

回答 1

Network Engineering用户

回答已采纳

发布于 2019-01-15 19:49:51

我确实没有关于48位MAC地址的各种表示的所有来源,但我看到它们被不同的使用:

代码语言:javascript
复制
AA-BB-CC-DD-EE-FF
AA.BB.CC.DD.EE.FF
AA:BB:CC:DD:EE:FF
AAA-BBB-CCC-DDD
AAA.BBB.CCC.DDD
AAA:BBB:CCC:DDD
AAAA-BBBB-CCCC
AAAA.BBBB.CCCC
AAAA:BBBB:CCCC
AAAAAA-BBBBBB
AAAAAA.BBBBBB
AAAAAA:BBBBBB

如果为此构建正则表达式,我将考虑所有这些格式,并确保不允许混合大小和分隔符。奇怪的是,我没有看到一个字符被表示为没有分隔符的一组字符。

这一直是我的宠儿,特别是当我需要通过各种交换机、路由器、WAPs等网络跟踪MAC地址时,查看ARP和CAM表,以及每个设备在其表中都有不同的表示形式。

票数 3
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/56141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档