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

Ключ

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

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


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

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

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

Оглавление
absoluteUrltrue

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

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

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

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

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

Блок кода
languageshell
 $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 формат 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}$

ZTE

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

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

Для использования в CPE_MAC_FORMAT:ZTE MAC-адреса (стандартный формат)

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

NOKIA/ALCATEL-LUCENT

Nokia/Alcatel

Примеры: HWTC1D6A1B9D, HWTCABCD1234

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

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

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

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

ZTE

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

с двоеточиями

)

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

MIKROTIK

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

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

^ZTEG[0-9A-F]{8}$
^ZTEGC[0-9A-F]{7}$

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

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

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

UBIQUITI

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

Блок кода
languageshell
^SN:^ZTEG[0-9a9A-fA-F]{28}(:$

Примеры: ZTEG12345678, ZTEGABCD1234

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

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

Блок кода
languageshell
SN:^ZTEGC[0-9a-fA9A-F]{2}){57}$

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

Примеры: ZTEGC1234567, ZTEGCABCDEF1

NOKIA/ALCATEL-LUCENT

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

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

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

MIKROTIK

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

Блок кода
languageshell
^[0-9A9a-FafA-fF]{2}$|SN(:^BD[0-9A9a-fA-F]{2}){105}$

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

UBIQUITI

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

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

Блок кода
languageshell
MAC:^([0-9A9a-FafA-fF]{2}[.]){2}(:[0-9A9a-FafA-fF]{2}){5}$

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

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

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

Примеры: MAC: 00

.11.2233.44.55.66

:11:22:33:44:55, 00-AA-BB-CC-DD-EE | SN:

BDCOM12345678

BD1234567890,

BDCOM87654321

BDABCDEF1234

Прошивка

v3

v1.

0

8.x

(новый формат)

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

Примеры: MAC: 001100.11.2233.4455, AABB44.CCDD55.EEFF 66 | SN: BDAA12345678BB, BDXY87654321ZZ

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

BDCOM12345678, BDCOM87654321

Прошивка

v4

v3.

x

0.x

и выше

(новый формат)

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

Примеры: MAC: 00:11:22:33:44:55, 00-AA-BB-CC-DD-EE 0011.2233.4455, AABB.CCDD.EEFF | SN: ABCD1234567890EFBDAA12345678BB, BDCM:12345678

C-Data (EPON/GEPON

BDXY87654321ZZ

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

Прошивка v4.

2

x.x и выше

Блок кода
languageshell
MAC:^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$|SN:^CD^[0A-Za-9Az0-F9]{12}$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 -FF | SN: CD123456789ABC, CDABC123DEF456ABCD1234567890EF, BDCM:12345678

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

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

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

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

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

Прошивка

v5

v3.

0

5.x

(обновленный формат)

Блок кода
languageshell
MAC:^[0-9A-Fa-f]{42}\.[0-9A-Fa-f]{4}\.([:-][0-9A-Fa-f]{2}){45}$|SN:^CD^CDATA[A0-Z0-9]{1410}$

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

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

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

: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: CDATA1234567890, CDATA9876543210

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

Блок кода
languageshell
MAC:^([0-9A-Fa-f]{24}[:-]){5}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{24}$|SN:^QT^CD[0A-9AZ0-F9]{1014}$

Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF 0011.2233.4455, AABB.CCDD.EEFF | SN: QT1234567890CDABC123DEF456GH78, QTABCDEF1234CD12A34B56C78D90EF

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

Прошивка v6.1

Прошивка v5.8

.x

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

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

Прошивка

v7

v5.

0

8.x

(новейший формат)

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

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

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

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

: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: QTECH12345678, QTECH87654321

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

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

Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF 0011.2233.4455, AABB.CCDD.EEFF | SN: DSAN12345678, DSANABCDEF12QTABC123456789, QTXYZ987654321

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

Прошивка

v3

v2.

1

3.x

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

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

Прошивка

v4

v3.

0

1.x

Блок кода
languageshell
MAC:^[0-9A-Fa-f]{42}\.([0-9A-Fa-f]{4}\.:-][0-9A-Fa-f]{42}){5}$|SN:^DASAN^DS[A0-Z0-9]{1012}$

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

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

Прошивка v1.9

: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: DS123456789012, DS987654321098

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

Блок кода
languageshell
MAC:^([0-9A-Fa-f]{24}\.[:0-9A-Fa-f]){54}\.[0-9A-Fa-f]{24}$|SN:^GCOM^DASAN[0A-9AZ0-F9]{810}$

Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF 0011.2233.4455, AABB.CCDD.EEFF | SN: GCOM12345678, GCOMABCDEF12DASANABC1234567, DASAN123XYZ789A

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

Прошивка

v2

v1.

5

9.x

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

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

Прошивка

v3

v2.

2

5.x

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

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

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

Прошивка v8.1

: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: GC1234567890, GC9876543210

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

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

Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF 0011.2233.4455, AABB.CCDD.EEFF | SN: FHTT12345678, FHTTABCDEF12GCOMAB12345678, GCOMXY87654321

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

Прошивка

v9

v8.

0

1.x

Блок кода
languageshell
MAC:^([0-9A-Fa-f]{42}\.[0:-9A-Fa-f]){45}\.[0-9A-Fa-f]{42}$|SN:^FH^FHTT[A0-Z09A-9F]{128}$

Примеры: MAC: 0011.2233.4455, AABB.CCDD.EEFF 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: FHABC123DEF456FHTT12345678, FH123XYZ789ABC

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

Прошивка v4.7

FHTTABCDEF12

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

Блок кода
languageshell
MAC:^([0-9A-Fa-f]{24}[:-]){5}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{24}$|SN:^RAIS^FH[0A-9AZ0-F9]{812}$

Примеры: MAC: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF 0011.2233.4455, AABB.CCDD.EEFF | SN: RAIS12345678, RAISABCDEF12FHABC123DEF456, FH123XYZ789ABC

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

Прошивка

v5

v4.

2

7.x

Блок кода
languageshell
MAC:^([0-9A-Fa-f]{42}\.[0:-9A-Fa-f]){45}\.[0-9A-Fa-f]{42}$|SN:^RC^RAIS[A0-Z09A-9F]{108}$

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

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

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

: 00:11:22:33:44:55, AA-BB-CC-DD-EE-FF | SN: RAIS12345678, RAISABCDEF12

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

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

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

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

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

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

Блок кода
languageshell
$conf{CPE_MAC_FORMAT} = '
|
^[0-9a-fA-F]{
4}
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

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

 Пример

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


 $conf

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

 Пример

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


 $conf

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


 $conf

Блок кода
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: Комбинированный с явным указанием типов


 $conf

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

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

Блок кода
languageshell
$conf
 Пример 3: Только серийные номера
 $conf
{CPE_MAC_FORMAT} = '
SN
MAC:^([
A-Z
0-9A-Fa-f]{2
,4
}[:-]){5}[0-9A-Fa-
F
f]{
6,12
2}$|SN:
^
^BD[0-9A-F]{
16}$';
10}$|SN:^CD[0-9A-F]{12}$|SN:^QT[0-9A-F]{10}$';

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

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

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

Блок кода
languageshell
$conf
 Пример 5: EPON/GEPON среда с новыми вендорами
 $conf
{CPE_MAC_FORMAT} = 'MAC:^([0-9A-Fa-f]{2}[
:-
.]){
5
2}[0-9A-Fa-f]{
2}$|SN:^BD
4}[.]([0-9A
-F]{10}$|SN:^CD
-Fa-f]{2}[.]){2}[0-9A-
F
Fa-f]{
12
2}$|SN:
^QT
^BDCOM[0-
9A-F
9]{
10}$';
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: Полная конфигурация для крупного провайдера
 $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[0-9A-F]{8}$|SN:^ZTEG[0-9A-F]{8}$|SN:^BD[0-9A-F]{10}$|SN:^CD[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-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 и новыми вендорами
 $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}$';

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

 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[0-9A-F]{8}$
 Примеры: ISAM12345678, ISAMABCD1234

 Универсальные форматы серийных номеров:
 Буквенный префиксы (2-4 буквы) + цифры/буквы
 Для использования в CPE_MAC_FORMAT: SN:^[A-Z]{2,4}[0-9A-F]{6,12}$
^[A-Z]{2,4}[0-9A-F]{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}$';

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

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

 Примеры данных для тестирования:
 
 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}$