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

标签 java validation comparison mac-address

我们有一个 Java Web 服务,它获取表示 MAC 地址的字符串。我们想要验证给定的字符串是否确实符合所需的格式。此外,我们希望创建一个标准化形式以使它们具有可比性。

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

我希望找到一些成熟且经过良好测试的库,可以完成此类任务。谁能指点我一下吗?我简直不敢相信它还不存在。

我将非常庆幸没有看到任何正则表达式作为可能的解决方案(如果需要,我们知道如何做到这一点)。

最佳答案

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
    }

该库经过了良好的测试,它有一个包含数千个测试的测试套件。

关于用于验证和比较 MAC 地址的 Java 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22450819/

相关文章:

excel - 我想比较 SSIS 中两个不同 Excel 文件的行数并获取电子邮件警报

java - setLatestEventInfo 方法无法解析

java - 大小程序 大用户群 低带宽

java - @ValidateOnExecution 什么时候应该与 Jersey 一起使用?

ruby-on-rails - Ruby on Rails - 验证和更新/创建多个对象

c# - .NET 和 T-SQL 之间的字符串比较差异?

java - 如何在 java 中以相同的顺序打乱两个数组

java - 我应该使用 Quartz XML 作业文件还是使用代码配置作业

javascript - 为什么我的单选按钮验证不起作用

c++ - 从 'uint64_t' 到 'unsigned int' 的转换