Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Подсказка
titleПамятка

Прежде чем применять настройки - внимательно читаем. От этого зависит работоспособность системы


 ПРИМЕРЫ
Информация
titleКраткое описание модуля
Описание параметра парсинга регулярных выражений для поля CPE_MAC в карточке абонента

Оглавление
absoluteUrltrue

Отображение дочерних элементов

ПРИМЕРЫ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ ДЛЯ ПАРАМЕТРА CPE_MAC_FORMAT

 Примеры

Примеры регулярных выражений для различных производителей  сетевого оборудования, которые можно использовать в параметре CPE_MAC_FORMAT в файле config.pl для автоматического определения и обработки как MAC-адресов, так и серийных номеров оборудования.

НОВАЯ ФУНКЦИОНАЛЬНОСТЬ:
 

Параметр CPE_MAC_FORMAT теперь поддерживает:

  1. Множественные регулярные выражения, разделенные символом '|'
  2. Префиксы для явного указания типа данных:
    1. MAC: для MAC-адресов (будут автоматически отформатированы)
    2. SN: для серийных номеров (останутся без изменений)
  3. Смешанные конфигурации с MAC-адресами и серийными номерами

Используются для парсинга данных в поле CPE_MAC, в карточке абонента.

Image Added

Оглавление
absoluteUrltrue

Отображение дочерних элементов

НОВАЯ ФУНКЦИОНАЛЬНОСТЬ: 

Пример  Пример использования в config.pl:

Блок кода
languageshell
 $CPE $CPE_MAC_FORMAT = 'MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^HW[A-Z0-9]{12}$';

 ОБРАТНАЯ ОБРАТНАЯ СОВМЕСТИМОСТЬ:

 Паттерны Паттерны без префиксов обрабатываются как MAC-адреса для совместимости
 со со старыми конфигурациями. ЛОГИКА

ЛОГИКА ПО УМОЛЧАНИЮ (при отсутствии CPE_MAC_FORMAT):

 Если Если параметр CPE_MAC_FORMAT не задан или пуст, используется встроенная логика: 1.

  1. Проверяется соответствие стандартным форматам MAC-адресов:
          -
        1. XX:XX:XX:XX:XX:XX (с двоеточиями)
          - XX
        1. XX-XX-XX-XX-XX-XX (с дефисами)
          -
        1. XXXX.XXXX.XXXX (Cisco формат)
          -
        1. XXXXXXXXXXXX (без разделителей)
       2.
      1. Если входные данные соответствуют любому из этих форматов - обрабатываются как MAC
       3.
      1. Если не соответствуют - считаются серийным номером и остаются без изменений
       4.
      1. MAC-адреса автоматически приводятся к стандартному формату XX:XX:XX:XX:XX:XX

       ============================================================================

       ============================================================================
       СТАНДАРТНЫЕ MAC-АДРЕСА
       ============================================================================

    СТАНДАРТНЫЕ MAC-АДРЕСА

     Стандартный MAC-адрес с любыми разделителями (двоеточие, дефис, точка)

    Блок кода
    languageshell
    ^[0-9a-fA-F]{2}([:\-\.]?[0-9a-fA-F]{2}){5}$

     MAC-адрес только с двоеточиями

    Блок кода
    languageshell
    ^[0-9a-
     Стандартный MAC-адрес с любыми разделителями (двоеточие, дефис, точка)
    ^[0-9a-
    fA-F]{2}(
    [
    :
    \-\.]?
    [0-9a-fA-F]{2}){5}$

     MAC-адрес только с двоеточиями
    ^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$ MAC-адрес только с дефисамидефисами

    Блок кода
    languageshell
    ^[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}$

     MAC-адрес только с точками

    Блок кода
    languageshell
    ^[0-9a-fA-F]{2}(\.[0-9a-fA-F]{2}){5}$

     MAC-адрес без разделителей (12 символов)

    Блок кода
    languageshell
    ^[0-9a-fA-F]{12}$

    Регулярные выражения по вендорам

    CISCO

    Cisco формат

     ============================================================================
     CISCO ОБОРУДОВАНИЕ
     ============================================================================

     Cisco формат xxxx.xxxx.xxxx (3 группы по 4 символа)

    Блок кода
    languageshell
    ^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$

     Комбинированный Комбинированный паттерн для Cisco (стандартный MAC + Cisco формат)

    Блок кода
    languageshell
    ^[0-9a-fA-F]{2}([:\-\.]?[0-9a-fA-F]{2}){5}$|^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$

    HUAWEI

    Huawei MAC-адреса (стандартный формат с дефисами)

    Блок кода
    languageshell
    ^[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}$
    ^HWTC[0-9A-F]{8}$
    ^[0-9]{10}[A-F0-9]{6}$

    Huawei серийные номера:

    Формат HWTC + 8 шестнадцатеричных символов

    Для использования в CPE_MAC_FORMAT:

    Блок кода
    languageshell
    SN:^HWTC[0-9A-F]{8}$

    Примеры: HWTC1D6A1B9D, HWTCABCD1234

    Формат 10 цифр + 6 шестнадцатеричных символов

    Для использования в CPE_MAC_FORMAT:

    Блок кода
    languageshell
    SN:^[0-9]{10}[A-F0-9]{6}$

    Примеры: 2102311ABC123456, 1234567890ABCDEF

    ZTE

    ZTE MAC-адреса (стандартный формат)

    Блок кода
    languageshell
    ^[0-9a-

     ============================================================================
     HUAWEI ОБОРУДОВАНИЕ
     ============================================================================

     Huawei MAC-адреса (стандартный формат с дефисами)
    ^[0-9a-
    fA-F]{2}([:\-\.]?[0-9a-fA-F]{2}){5}$
    ^ZTEG[0-9A-F]{8}$
    ^ZTEGC[0-9A-F]{7}$

    ZTE серийные номера:

    Формат ZTEG + 8 символов

    Для использования  Huawei серийные номера обычно начинаются с букв (НЕ включать в CPE_MAC_FORMAT)
     Примеры серийных номеров Huawei: HWTC1D6A1B9D, 2102311ABC123456
     Эти паттерны НЕ должны быть :

    Блок кода
    languageshell
    SN:^ZTEG[0-9A-F]{8}$

    Примеры: ZTEG12345678, ZTEGABCD1234

    Формат ZTEGC + 7 символов

    Для использования в CPE_MAC_FORMAT, так как это серийные номера:
     ^HWTC:

    Блок кода
    languageshell
    SN:^ZTEGC[0-9A-F]{
    8
    7}$
     ^[0-

    Примеры: ZTEGC1234567, ZTEGCABCDEF1

    NOKIA/ALCATEL-LUCENT

    Nokia/Alcatel MAC-адреса (стандартный формат с двоеточиями)

    Блок кода
    languageshell
    ^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$

    MIKROTIK

    MikroTik MAC-адреса (стандартный формат с двоеточиями)

    Блок кода
    languageshell
    ^[0-9a-fA-F]{2}(:
    9]{10}[A-F0-9]{6}$

     ============================================================================
     ZTE ОБОРУДОВАНИЕ
     ============================================================================

     ZTE MAC-адреса (стандартный формат)
    ^
    [0-9a-fA-F]{2}){5}$

    UBIQUITI

    Ubiquiti MAC-адреса (стандартный формат с двоеточиями)

    Блок кода
    languageshell
    ^[0-9a-fA-F]{2}(:
    ([:\-\.]?
    [0-9a-fA-F]{2}){5}$
     ZTE серийные номера обычно содержат буквы (НЕ включать в CPE_MAC_FORMAT)
     Примеры серийных номеров ZTE: ZTEG12345678, ZTEGC8234567
     Эти паттерны НЕ должны быть в CPE_MAC_FORMAT:
     ^ZTEG

    BDCOM (EPON оборудование)

    Прошивка v2.1.x

    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-
    F
    Fa-f]{
    8
    2}$

     ^ZTEGC
    |SN:^BD[0-9A-F]{
    7}$

     ============================================================================
     NOKIA/ALCATEL-LUCENT ОБОРУДОВАНИЕ
     ============================================================================

     Nokia/Alcatel MAC-адреса (стандартный формат с двоеточиями)
    ^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$

     ============================================================================
     MIKROTIK ОБОРУДОВАНИЕ
     ============================================================================

     MikroTik MAC-адреса (стандартный формат с двоеточиями)
    ^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$

     ============================================================================
     UBIQUITI ОБОРУДОВАНИЕ
     ============================================================================

     Ubiquiti MAC-адреса (стандартный формат с двоеточиями)
    ^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$

     ============================================================================
     ПРИМЕРЫ КОНФИГУРАЦИИ ДЛЯ config.pl
     ============================================================================

    10}$

    Примеры: MAC: 00:11:22:33:44:55, 00-AA-BB-CC-DD-EE | SN: BD1234567890, BDABCDEF1234

    Прошивка v1.8.x

    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[.]){2}[0-9A-Fa-f]{4}[.]([0-9A-Fa-f]{2}[.]){2}[0-9A-Fa-f]{2}$|SN:^BDCOM[0-9]{8}$

    Примеры: MAC: 00.11.2233.44.55.66 | SN: BDCOM12345678, BDCOM87654321

    Прошивка v3.0.x (новый формат)

    Блок кода
    languageshell
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^BD[A-Z]{2}[0-9]{8}[A-Z]{2}$

    Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: BDAA12345678BB, BDXY87654321ZZ

    BDCOM (GPON оборудование)

    Прошивка v4.x.x и выше

    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^[A-Za-z0-9]{16}$|SN:^[A-Za-z0-9]{4}:[A-Za-z0-9]{8}$

    Примеры: MAC: 00:11:22:33:44:55, 00-AA-BB-CC-DD-EE | SN: ABCD1234567890EF, BDCM:12345678

    C-Data (EPON/GEPON оборудование)

    Прошивка v4.2.x и выше

    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^CD[0-9A-F]{12}$

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: CD123456789ABC, CDABC123DEF456

    Прошивка v3.5.x

    Блок кода
    languageshell
    MAC:^[0-9A-Fa-f]{2}([:-][0-9A-Fa-f]{2}){5}$|SN:^CDATA[0-9]{10}$

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: CDATA1234567890, CDATA9876543210

    Прошивка v5.0.x (обновленный формат)

    Блок кода
    languageshell
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^CD[A-Z0-9]{14}$

    Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: CDABC123DEF456GH78, CD12A34B56C78D90EF

    Qtech (EPON/GEPON оборудование)

    Прошивка v6.1.x

    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^QT[0-9A-F]{10}$

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: QT1234567890, QTABCDEF1234

    Прошивка v5.8.x

    Блок кода
    languageshell
    MAC:^[0-9A-Fa-f]{2}([:-][0-9A-Fa-f]{2}){5}$|SN:^QTECH[0-9]{8}$

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: QTECH12345678, QTECH87654321

    Прошивка v7.0.x (новейший формат)

    Блок кода
    languageshell
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^QT[A-Z]{3}[0-9]{9}$

    Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: QTABC123456789, QTXYZ987654321

    Dasan (GPON/EPON оборудование)

    Прошивка v2.3.x

    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^DSAN

     Пример 1: Только стандартные MAC-адреса
     $conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{2}([:\\-\\.]?[0-9a-fA-F]{2}){5}$';

     Пример 2: Стандартные MAC + Cisco формат
     $conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{2}([:\\-\\.]?[0-9a-fA-F]{2}){5}$|^[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}$';

     Пример 3: Только MAC с двоеточиями
     $conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$';

     Пример 4: MAC без разделителей + с двоеточиями
     $conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{12}$|^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$';

     Пример 5: Универсальный паттерн для большинства случаев
     $conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{2}([:\\-\\.]?[0-9a-fA-F]{2}){5}$|^[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}$|^[0-9a-fA-F]{12}$';

     Пример 6: Использование префиксов MAC: и SN:
     $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9a-fA-F]{2}([:\\-\\.]?[0-9a-fA-F]{2}){5}$|SN:^HWTC[0-9A-F]{8}$|SN:^ZTEG
    [0-9A-F]{8}$
    ';

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: DSAN12345678, DSANABCDEF12

    Прошивка v3.1.x

     Пример 7: Комбинированный с явным указанием типов
     $conf{CPE_MAC_FORMAT} = '
    Блок кода
    languageshell
    MAC:^[0-
    9a
    9A-
    fA
    Fa-
    F
    f]{
    4}\\.
    2}([:-][0-
    9a
    9A-
    fA
    Fa-
    F
    f]{
    4}\\.[0-9a-fA-F]{4
    2}){5}$|
    MAC
    SN:
    ^
    ^DS[0-
    9a-fA-F
    9]{12}$

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: DS123456789012, DS987654321098

    Прошивка v4.0.x

    Блок кода
    languageshell
    MAC:^[
    A-Z]{2,4}
    0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A
    -F]{6,12}$';
    -Fa-f]{4}$|SN:^DASAN[A-Z0-9]{10}$

    Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: DASANABC1234567, DASAN123XYZ789A

    G-Com (GPON оборудование)

    Прошивка v1.9.x

    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^GCOM

     ============================================================================
     ПРАКТИЧЕСКИЕ ПРИМЕРЫ КОМБИНИРОВАННОГО ИСПОЛЬЗОВАНИЯ
     ============================================================================

     Пример 1: Смешанная среда с оборудованием разных производителей
     $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9a-fA-F]{12}$|MAC:^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$|SN:^HWTC
    [0-9A-F]{8}$
    |SN:^ZTEG[0-9A-F]{8}$'; Пример 2: Только MAC-адреса (различные форматы)
     $conf{CPE_MAC_FORMAT} = 'MAC

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: GCOM12345678, GCOMABCDEF12

    Прошивка v2.5.x

    Блок кода
    languageshell
    MAC:^[0-
    9a
    9A-
    fA
    Fa-
    F
    f]{2}([:
    \
    -
    \.
    ]
    ?
    [0-
    9a
    9A-
    fA
    Fa-
    F
    f]{2}){5}$
    ';

     Пример 3: Только серийные номера
     $conf{CPE_MAC_FORMAT} = 'SN:^[A-Z]{2,4}[0-9A-F]{6,12}$|SN:^[0-9A-F]{16}$';

    |SN:^GC[0-9]{10}$

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: GC1234567890, GC9876543210

    Прошивка v3.2.x

    Блок кода
    languageshell
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^GCOM[A-Z]{2}[0-9]{8}$

    Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: GCOMAB12345678, GCOMXY87654321

    Fiberhome (GPON оборудование)

    Прошивка v8.1.x

    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^FHTT[0-9A-F]{8}$

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: FHTT12345678, FHTTABCDEF12

    Прошивка v9.0.x

    Блок кода
    languageshell
    MAC
     Пример 4: Универсальный для большинства случаев
     $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9a-fA-F]{2}([:\-\.]?[0-9a-fA-F]{2}){5}$|MAC:^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$|SN:^[A-Z]{2,4}[0-9A-F]{6,12}$|SN
    :^[0-9A-
    F
    Fa-f]{
    16}$|SN:^
    4}\.[0-9A-Fa-
    F
    f]{4}
    :
    \.[0-9A-
    F
    Fa-f]{
    8
    4}$|SN:^FH[A-Z0-9]{12}$

    Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: FHABC123DEF456, FH123XYZ789ABC

    Raisecom (EPON оборудование)

    Прошивка v4.7.x

    '; Пример 5: EPON/GEPON среда с новыми вендорами
     $conf{CPE_MAC_FORMAT} = '
    Блок кода
    languageshell
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:
    ^BD
    ^RAIS[0-9A-F]{
    10
    8}$
    |SN:^CD[0-9A-F]{12}$|SN:^QT

    Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: RAIS12345678, RAISABCDEF12

    Прошивка v5.2.x

    Блок кода
    languageshell
    MAC:^[0-9A-
    F
    Fa-f]{
    10}$'; Пример 6: Полная конфигурация для крупного провайдера
     $conf{CPE_MAC_FORMAT} = 'MAC:^(
    4}\.[0-9A-Fa-f]{
    2}[:-]){5}[0-9A-Fa-f]{2}$|MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}
    4}\.[0-9A-Fa-f]{4}$|SN:
    ^HWTC
    ^RC[
    0
    A-
    9A
    Z0-
    F
    9]{
    8
    10}$
    |SN:^ZTEG[0-9A-F]{8}$|SN:^BD[0-9A-F]{10}$|SN:^CD

    Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: RCABC1234567, RC123XYZ789A

    ПРИМЕРЫ КОНФИГУРАЦИИ ДЛЯ config.pl

    Пример 1: Только стандартные MAC-адреса

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{2}([:\\-\\.]?[0-9a-fA-F]{2}){5}$';

    Пример 2: Стандартные MAC + Cisco формат

    Блок кода
    languageshell
    $conf
    [0-9A-F]{12}$|SN:^QT[0-9A-F]{10}$|SN:^DSAN[0-9A-F]{8}$|SN:^GCOM[0-9A-F]{8}$'; Пример 7: Конфигурация для конкретных прошивок
     $conf
    {CPE_MAC_FORMAT} = '
    MAC:
    ^
    (
    [0-
    9A
    9a-
    Fa
    fA-
    f
    F]{2}([:\\-\\.]
    ){2}
    ?[0-
    9A
    9a-
    Fa
    fA-
    f
    F]{
    4}[.]([0-9A-Fa-f]{2}[.]){2}[0-9A-Fa-f]{2}$|SN:^BDCOM[0-9]{8}$|SN:^CDATA[0-9]{10}$|
    2}){5}$|^[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}$';

    Пример 3: Только MAC с двоеточиями

    Блок кода
    languageshell
    $conf
    SN:^QTECH[0-9]{8}$'; Пример 8: Смешанная среда с Cisco и новыми вендорами
     $conf
    {CPE_MAC_FORMAT} = '
    MAC:
    ^[0-
    9A
    9a-
    Fa
    fA-
    f
    F]{
    4
    2}
    \.
    (:[0-
    9A
    9a-
    Fa
    fA-
    f
    F]{2}){5}$';

    Пример 4

    }\.

    : MAC без разделителей + с двоеточиями

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = '^[0-
    9A
    9a-
    Fa
    fA-
    f
    F]{
    4
    12}$|
    SN:^FHTT
    ^[0-
    9A
    9a-fA-F]{
    8
    2}
    $|SN
    (:
    ^RAIS
    [0-
    9A
    9a-fA-F]{2}){
    8
    5}$
    |SN:^FH[A-Z0-9]{12}$|SN:^RC[A-Z0-9]{10}$';

     ============================================================================
     ВАЖНЫЕ ЗАМЕЧАНИЯ
     ============================================================================

    ';

    Пример 5: Универсальный паттерн для большинства случаев

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{2}([:\\-\\.]?[0-9a-fA-F]{2}){5}$|^[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}$|^[0-9a-fA-F]{12}$';

    Пример 6: Использование префиксов MAC: и SN:

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9a-fA-F]{2}([:\\-\\.]?[0-9a-fA-F]{2}){5}$|SN:^HWTC[0-9A-F]{8}$|SN:^ZTEG[0-9A-F]{8}$';

    Пример 7: Комбинированный с явным указанием типов

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}\\.[0-9a-fA-F]{4}$|MAC:^[0-9a-fA-F]{12}$|SN:^[A-Z]{2,4}[0-9A-F]{6,12}$';

    ПРАКТИЧЕСКИЕ ПРИМЕРЫ КОМБИНИРОВАННОГО ИСПОЛЬЗОВАНИЯ

    Пример 1: Смешанная среда с оборудованием разных производителей

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9a-fA-F]{12}$|MAC:^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$|SN:^HWTC[0-9A-F]{8}$|SN:^ZTEG[0-9A-F]{8}$';

    Пример 2: Только MAC-адреса (различные форматы)

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9a-fA-F]{2}([:\-\.]?[0-9a-fA-F]{2}){5}$';

    Пример 3: Только серийные номера

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'SN:^[A-Z]{2,4}[0-9A-F]{6,12}$|SN:^[0-9A-F]{16}$';

    Пример 4: Универсальный для большинства случаев

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9a-fA-F]{2}([:\-\.]?[0-9a-fA-F]{2}){5}$|MAC:^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$|SN:^[A-Z]{2,4}[0-9A-F]{6,12}$|SN:^[0-9A-F]{16}$|SN:^[0-9A-F]{4}:[0-9A-F]{8}$';

    Пример 5: EPON/GEPON среда с новыми вендорами

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^BD[0-9A-F]{10}$|SN:^CD[0-9A-F]{12}$|SN:^QT[0-9A-F]{10}$';

    Пример 6: Полная конфигурация для крупного провайдера

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^HWTC

     1. В Perl необходимо экранировать обратные слеши (\) удваиванием (\\)
     2. Символ | используется как разделитель между паттернами
     3. Если CPE_MAC соответствует любому паттерну с префиксом MAC: - форматируется как MAC
     4. Если CPE_MAC соответствует паттерну с префиксом SN: - остается без изменений
     5. Паттерны без префиксов обрабатываются как MAC-адреса (обратная совместимость)
     6. Тестируйте регулярные выражения перед использованием в продакшене
     7. Учитывайте особенности форматов разных производителей
     8. Регулярные выражения чувствительны к регистру, используйте [A-Fa-f] для hex
     9. Двоеточия внутри регулярных выражений НЕ влияют на парсинг префиксов
        Пример: MAC:^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$
        Здесь только первое двоеточие после 'MAC' является разделителем префикса
     10. Версии прошивок могут изменять форматы - всегда проверяйте актуальность
     11. Для EPON/GEPON оборудования часто используются специфичные форматы
     12. Серийные номера могут содержать как буквы, так и цифры
     13. При обновлении прошивки оборудования может измениться формат идентификаторов
     14. Рекомендуется группировать паттерны по вендорам для удобства сопровождения

     ============================================================================
     РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ ДЛЯ СЕРИЙНЫХ НОМЕРОВ
     ============================================================================

     С введением префиксов теперь можно безопасно использовать паттерны серийных номеров
     в CPE_MAC_FORMAT с префиксом SN:
     Они приведены для справки и понимания форматов серийных номеров
     Если серийный номер соответствует любому паттерну из CPE_MAC_FORMAT,
     он будет ошибочно обработан как MAC-адрес

     Huawei серийные номера:
     Формат HWTC + 8 шестнадцатеричных символов
     Для использования в CPE_MAC_FORMAT: SN:^HWTC[0-9A-F]{8}$
    ^HWTC[0-9A-F]{8}$
     Примеры: HWTC1D6A1B9D, HWTCABCD1234

     Формат 10 цифр + 6 шестнадцатеричных символов
     Для использования в CPE_MAC_FORMAT: SN:^[0-9]{10}[A-F0-9]{6}$
    ^[0-9]{10}[A-F0-9]{6}$
     Примеры: 2102311ABC123456, 1234567890ABCDEF

     ZTE серийные номера:
     Формат ZTEG + 8 символов
     Для использования в CPE_MAC_FORMAT: SN:^ZTEG[0-9A-F]{8}$
    ^ZTEG[0-9A-F]{8}$
     Примеры: ZTEG12345678, ZTEGABCD1234

     Формат ZTEGC + 7 символов
     Для использования в CPE_MAC_FORMAT: SN:^ZTEGC[0-9A-F]{7}$
    ^ZTEGC[0-9A-F]{7}$
     Примеры: ZTEGC1234567, ZTEGCABCDEF1

     Nokia/Alcatel серийные номера:
     Формат ALCL + 8 символов
     Для использования в CPE_MAC_FORMAT: SN:^ALCL[0-9A-F]{8}$
    ^ALCL[0-9A-F]{8}$
     Примеры: ALCL12345678, ALCLABCD1234

     Формат ISAM + 8 символов
     Для использования в CPE_MAC_FORMAT: SN:^ISAM
    [0-9A-F]{8}$

    ^ISAM
    |SN:^ZTEG[0-9A-F]{8}$

     Примеры: ISAM12345678, ISAMABCD1234 Универсальные форматы серийных номеров:
     Буквенный префиксы (2-4 буквы) + цифры/буквы
     Для использования в CPE_MAC_FORMAT: SN:^[A-Z]{2,4}
    |SN:^BD[0-9A-F]{10}$|SN:^CD[0-9A-F]{
    6,
    12}$

    ^[A-Z]{2,4}
    |SN:^QT[0-9A-F]{10}$|SN:^DSAN[0-9A-F]{
    6,12
    8}$

     Примеры: AB123456, HWTC12345678, ZTEG87654321

     Только цифры (8-16 символов) - длинные серийные номера
     Для использования в CPE_MAC_FORMAT: SN:^[0-9]{8,16}$
    ^[0-9]{8,16}$
     Примеры: 12345678, 1234567890123456

    |SN:^GCOM[0-9A-F]{8}$';

    Пример 7: Конфигурация для конкретных прошивок

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^([0-9A-Fa-f]{2}[.]){2}[0-9A-Fa-f]{4}[.]([0-9A-Fa-f]{2}[.]){2}[0-9A-Fa-f]{2}$|SN:^BDCOM[0-9]{8}$|SN:^CDATA[0-9]{10}$|SN:^QTECH[0-9]{8}$';

    Пример 8: Смешанная среда с Cisco и новыми вендорами

    Блок кода
    languageshell
    $conf{CPE_MAC_FORMAT} = 'MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^FHTT[0-9A-F]{8}$|SN:^RAIS[0-9A-F]{8}$|SN:^FH[A-Z0-9]{12}$|SN:^RC[A-Z0-9]{10}$';

    Универсальные форматы серийных номеров:

    Буквенный префиксы (2-4 буквы) + цифры/буквы

    Для использования в CPE_MAC_FORMAT:

    Блок кода
    languageshell
    SN:^[A-Z]{2,4}[0-9A-F]{6,12}$

    Примеры: AB123456, HWTC12345678, ZTEG87654321

    Только цифры (8-16 символов) - длинные серийные номера

    Для использования в CPE_MAC_FORMAT:

    Блок кода
    languageshell
    SN:^[0-9]{8,16}$

    Примеры: 12345678, 1234567890123456

    Смешанный формат: буквы + цифры + буквы

    Для использования в CPE_MAC_FORMAT:

    Блок кода
    languageshell
    SN:^[A-Z]{2,4}[0-9]{4,8}[A-Z0-9]{2,4}$

    Примеры: HWTC1234AB, ZTE5678CD12

     Смешанный формат: буквы + цифры + буквы
     Для использования в CPE_MAC_FORMAT: SN:^[A-Z]{2,4}[0-9]{4,8}[A-Z0-9]{2,4}$
    ^[A-Z]{2,4}[0-9]{4,8}[A-Z0-9]{2,4}$
     Примеры: HWTC1234AB, ZTE5678CD12

     ============================================================================
     РЕКОМЕНДАЦИИ ПО НАСТРОЙКЕ CPE_MAC_FORMAT
     ============================================================================

     С новой функциональностью префиксов MAC: и SN: рекомендуется:

     1. ИСПОЛЬЗУЙТЕ префиксы для явного указания типа данных:
        - MAC: для паттернов MAC-адресов
        - SN: для паттернов серийных номеров
     2. Группируйте паттерны по вендорам для удобства сопровождения
     3. Тестируйте паттерны на реальных данных перед внедрением
     4. Учитывайте версии прошивок оборудования

     РЕКОМЕНДУЕМЫЕ паттерны для MAC-адресов:
     - MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$ (стандартный формат)
     - MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$ (Cisco формат)

     РЕКОМЕНДУЕМЫЕ паттерны для серийных номеров:
     - SN:^[A-Z]{2,4}[0-9A-F]{8,12}$ (буквенный префикс + цифры)
     - SN:^[A-Z0-9]{8,16}$ (универсальный алфавитно-цифровой)

     ============================================================================
     ПРИМЕРЫ РЕКОМЕНДУЕМОЙ КОНФИГУРАЦИИ С ПРЕФИКСАМИ
     ============================================================================

     Вариант 1: Только MAC-адреса (стандартные форматы)
     $conf{CPE_MAC_FORMAT} = 'MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|MAC:^[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}$';

     Вариант 2: Только серийные номера (универсальные паттерны)
     $conf{CPE_MAC_FORMAT} = 'SN:^[A-Z]{2,4}[0-9A-F]{8,12}$|SN:^[A-Z0-9]{8,16}$';

     Вариант 3: Смешанная конфигурация (MAC + серийные номера)
     $conf{CPE_MAC_FORMAT} = 'MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|MAC:^[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}\\.[0-9A-Fa-f]{4}$|SN:^[A-Z]{2,4}[0-9A-F]{8,12}$|SN:^[A-Z0-9]{8,16}$';

     Вариант 4: Конфигурация для конкретных вендоров
     $conf{CPE_MAC_FORMAT} = 'MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^HW[A-Z0-9]{12}$|SN:^ZTE[A-Z0-9]{8,12}$|SN:^BD[0-9A-F]{10}$';

     ============================================================================
     ДОПОЛНИТЕЛЬНЫЕ ВЕНДОРЫ
     ============================================================================

     BDCOM (EPON оборудование)
     Прошивка v2.1.x
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^BD[0-9A-F]{10}$
     Примеры: MAC: 00:11:22:33:44:55, 00-AA-BB-CC-DD-EE | SN: BD1234567890, BDABCDEF1234

     Прошивка v1.8.x
    MAC:^([0-9A-Fa-f]{2}[.]){2}[0-9A-Fa-f]{4}[.]([0-9A-Fa-f]{2}[.]){2}[0-9A-Fa-f]{2}$|SN:^BDCOM[0-9]{8}$
     Примеры: MAC: 00.11.2233.44.55.66 | SN: BDCOM12345678, BDCOM87654321

     Прошивка v3.0.x (новый формат)
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^BD[A-Z]{2}[0-9]{8}[A-Z]{2}$
     Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: BDAA12345678BB, BDXY87654321ZZ

     C-Data (EPON/GEPON оборудование)
     Прошивка v4.2.x и выше
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^CD[0-9A-F]{12}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: CD123456789ABC, CDABC123DEF456

     Прошивка v3.5.x
    MAC:^[0-9A-Fa-f]{2}([:-][0-9A-Fa-f]{2}){5}$|SN:^CDATA[0-9]{10}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: CDATA1234567890, CDATA9876543210

     Прошивка v5.0.x (обновленный формат)
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^CD[A-Z0-9]{14}$
     Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: CDABC123DEF456GH78, CD12A34B56C78D90EF

     Qtech (EPON/GEPON оборудование)
     Прошивка v6.1.x
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^QT[0-9A-F]{10}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: QT1234567890, QTABCDEF1234

     Прошивка v5.8.x
    MAC:^[0-9A-Fa-f]{2}([:-][0-9A-Fa-f]{2}){5}$|SN:^QTECH[0-9]{8}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: QTECH12345678, QTECH87654321

     Прошивка v7.0.x (новейший формат)
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^QT[A-Z]{3}[0-9]{9}$
     Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: QTABC123456789, QTXYZ987654321

     Dasan (GPON/EPON оборудование)
     Прошивка v2.3.x
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^DSAN[0-9A-F]{8}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: DSAN12345678, DSANABCDEF12

     Прошивка v3.1.x
    MAC:^[0-9A-Fa-f]{2}([:-][0-9A-Fa-f]{2}){5}$|SN:^DS[0-9]{12}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: DS123456789012, DS987654321098

     Прошивка v4.0.x
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^DASAN[A-Z0-9]{10}$
     Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: DASANABC1234567, DASAN123XYZ789A

     G-Com (GPON оборудование)
     Прошивка v1.9.x
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^GCOM[0-9A-F]{8}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: GCOM12345678, GCOMABCDEF12

     Прошивка v2.5.x
    MAC:^[0-9A-Fa-f]{2}([:-][0-9A-Fa-f]{2}){5}$|SN:^GC[0-9]{10}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: GC1234567890, GC9876543210

     Прошивка v3.2.x
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^GCOM[A-Z]{2}[0-9]{8}$
     Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: GCOMAB12345678, GCOMXY87654321

     Fiberhome (GPON оборудование)
     Прошивка v8.1.x
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^FHTT[0-9A-F]{8}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: FHTT12345678, FHTTABCDEF12

     Прошивка v9.0.x
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^FH[A-Z0-9]{12}$
     Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: FHABC123DEF456, FH123XYZ789ABC

     Raisecom (EPON оборудование)
     Прошивка v4.7.x
    MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^RAIS[0-9A-F]{8}$
     Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: RAIS12345678, RAISABCDEF12

     Прошивка v5.2.x
    MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^RC[A-Z0-9]{10}$
     Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF | SN: RCABC1234567, RC123XYZ789A

     ============================================================================
     ТЕСТИРОВАНИЕ ПАТТЕРНОВ
     ============================================================================

     Примеры данных для тестирования:
     
     MAC-адреса (должны соответствовать паттернам MAC:):
     - 00:11:22:33:44:55
     - 00-11-22-33-44-55
     - AA:BB:CC:DD:EE:FF
     - 0011.2233.4455 (Cisco формат)
     - AABB.CCDD.EEFF
     
     Серийные номера (должны соответствовать паттернам SN:):
     - BD1234567890 (BDCOM)
     - BDCOM12345678 (BDCOM старый формат)
     - BDAA12345678BB (BDCOM новый формат)
     - CD123456789ABC (C-Data)
     - CDATA1234567890 (C-Data старый формат)
     - QT1234567890 (Qtech)
     - QTECH12345678 (Qtech старый формат)
     - QTABC123456789 (Qtech новый формат)
     - DSAN12345678 (Dasan)
     - DS123456789012 (Dasan)
     - GCOM12345678 (G-Com)
     - GC1234567890 (G-Com)
     - FHTT12345678 (Fiberhome)
     - FH123XYZ789ABC (Fiberhome новый формат)
     - RAIS12345678 (Raisecom)
     - RCABC1234567 (Raisecom новый формат)
     
     Примеры полных конфигураций для тестирования:
     MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^BD[0-9A-F]{10}$
     MAC:^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$|SN:^QTECH[0-9]{8}$

    Описания параметров конфигурации (config.pl) или модуля Config

    ПараметрПримерОписаниеДополнительная информация