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

Ключ

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

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


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

Информация
titleКраткое описание модуля

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

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

Оглавление
absoluteUrltrue

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

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

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

 Стандартный 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-адрес только с дефисами

Блок кода
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}$

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

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

 Пример 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}$
'; Пример 7: Комбинированный с явным указанием типов
 $conf{CPE_MAC_FORMAT} = '

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

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

Блок кода
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-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
-F]{6,12}$';

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

 Пример 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]{8}$|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

6,12}$
 Примеры: AB123456, HWTC12345678, ZTEG87654321

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

 Смешанный формат: буквы + цифры + буквы
 Для использования в 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}$