Java库用于验证和比较MAC地址

时间:2014-03-17 09:36:21

标签: java validation comparison mac-address

我们有一个Java Web服务,它获取表示MAC地址的String。我们想要验证给定的String是否实际匹配所需的格式。此外,我们希望创建一个标准化的表单,使它们具有可比性。

我搜索了很长一段时间但发现只有一些“松散的正则表达式”。我们真的更喜欢有一个可以解析不同格式的库并返回一个规范化的(字符串)表示(即01-23-45-67-89-ab01:23:45:67:89:ab将返回相同的表示并具有可比性)。

我期望找到一些成熟且经过良好测试的库,它可以完成这样的任务。有人可以指点我吗?我简直不敢相信它还不存在。

我非常感谢不将任何RegExes视为可能的解决方案(如果需要,我们知道如何做到这一点)。

2 个答案:

答案 0 :(得分:2)

The IPAddress Java library会这样做。链接中提供了javadoc。免责声明:我是项目经理。

该库将读取各种常见的MAC地址格式,如aa:bb:cc:dd:ee:ff,aa-bb-cc-dd-ee-ff,aabb.ccdd.eeff,它支持的地址是48或64位,并且还允许您指定地址范围,如aa-ff:bb:cc:*:ee:ff

验证地址是否有效:

    String str = "aa:bb:cc:dd:ee:ff";
    MACAddressString addrString = new MACAddressString(str);
    try {
         MACAddress addr = addrString.toAddress();
         ...
    } catch(AddressStringException e) {
        //e.getMessage provides validation issue
    }

该库已经过充分测试,它有一个包含数千个测试的测试套件。

答案 1 :(得分:0)

  

成熟且经过良好测试的图书馆

验证MAC地址?它是以十六进制表示的6个字节,可选地用分隔符分隔。这是一个家庭作业或轻型面试问题,无需编写图书馆。我的解决方案是10行,它比必要的更偏执...