Nano Hash - криптовалюты, майнинг, программирование

Библиотека Java для проверки и сравнения MAC-адресов

У нас есть веб-служба Java, которая получает строку, представляющую MAC-адрес. Мы хотим проверить, действительно ли данная строка соответствует требуемому формату. Далее мы хотим создать нормализованную форму, чтобы сделать их сопоставимыми.

Я искал довольно долго, но нашел только несколько "свободных регулярных выражений". Мы действительно предпочли бы иметь библиотеку, которая может анализировать различные форматы и возвращать нормализованное (строковое) представление (т. е. 01-23-45-67-89-ab и 01:23:45:67:89:ab будут возвращать одно и то же представление и быть сопоставимыми).

Я ожидал найти какую-нибудь зрелую и хорошо протестированную библиотеку, которая могла бы справиться с такой задачей. Может ли кто-нибудь указать мне на это? Я просто не могу поверить, что его еще нет.

Я был бы очень благодарен, если бы не рассматривал регулярные выражения в качестве возможных решений (мы знаем, как это сделать, если это необходимо).



Ответы:


1

Java-библиотека IPAddress сделает это. Джавадок доступен по ссылке. Отказ от ответственности: я руководитель проекта.

Библиотека будет читать различные распространенные форматы 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
    }

Библиотека хорошо протестирована, в ней есть набор тестов с тысячами тестов.

13.12.2017

2

зрелая и хорошо протестированная библиотека

Чтобы проверить MAC-адреса? Это 6 байтов в шестнадцатеричном формате, которые могут быть разделены разделителем. Это домашнее задание или легкий вопрос на собеседовании, не нужно писать библиотеку. Мое решение - 10 строк, и это более параноидально, чем необходимо...

17.03.2014
  • Я слышал заявления, подобные вашему, о часовых поясах, наборах символов, адресах электронной почты, ... Из-за неполного знания заявленных проблемных доменов они вносили ошибки. Я мало что знаю о MAC-адресах и не хочу тратить время на изучение тонкостей различных возможных форматов. Примечание: я не обвиняю вас в том, что вы ничего не знаете. Просто был неудачный опыт. И тот факт, что я ничего не смог найти, на самом деле подтверждает ваш аргумент. 17.03.2014
  • Часовые пояса: на Java есть их база данных. Наборы персонажей: то же самое. Адреса электронной почты: единственный способ проверить — отправить электронное письмо и дождаться ответа. Послушайте, я понимаю, откуда вы пришли (я был там), но иногда действительно есть авторитетный источник, и обычно полезно делать простые вещи простыми. 17.03.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..