| Подсказка | ||
|---|---|---|
| ||
Прежде чем применять настройки - внимательно читаем. От этого зависит работоспособность системы |
| Информация | ||
|---|---|---|
| ||
ПРИМЕРЫ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ ДЛЯ ПАРАМЕТРА CPE_MAC_FORMAT Примеры регулярных выражений для различных производителей сетевого оборудования, которые можно использовать в параметре CPE_MAC_FORMAT в файле config.pl для автоматического определения и обработки как MAC-адресов, так и серийных номеров оборудования. |
| Оглавление | ||
|---|---|---|
|
| Отображение дочерних элементов |
|---|
НОВАЯ ФУНКЦИОНАЛЬНОСТЬ:
Параметр CPE_MAC_FORMAT теперь поддерживает:
- Множественные регулярные выражения, разделенные символом '|'
- Префиксы для явного указания типа данных:
- MAC: для MAC-адресов (будут автоматически отформатированы)
- SN: для серийных номеров (останутся без изменений)
- Смешанные конфигурации с MAC-адресами и серийными номерами
Пример использования в config.pl:
| Блок кода | ||
|---|---|---|
| ||
$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 не задан или пуст, используется встроенная логика:
- Проверяется соответствие стандартным форматам MAC-адресов:
- XX:XX:XX:XX:XX:XX (с двоеточиями)
- XX-XX-XX-XX-XX-XX (с дефисами)
- XXXX.XXXX.XXXX (Cisco формат)
- XXXXXXXXXXXX (без разделителей)
- Если входные данные соответствуют любому из этих форматов - обрабатываются как MAC
- Если не соответствуют - считаются серийным номером и остаются без изменений
- MAC-адреса автоматически приводятся к стандартному формату XX:XX:XX:XX:XX:XX
СТАНДАРТНЫЕ MAC-АДРЕСА
Стандартный 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-адрес только с дефисами
| Блок кода | ||
|---|---|---|
| ||
^[0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){5}$ |
MAC-адрес только с точками
| Блок кода | ||
|---|---|---|
| ||
^[0-9a-fA-F]{2}(\.[0-9a-fA-F]{2}){5}$ |
MAC-адрес без разделителей (12 символов)
| Блок кода | ||
|---|---|---|
| ||
^[0-9a-fA-F]{12}$ |
Регулярные выражения по вендорам
CISCO
Cisco формат xxxx.xxxx.xxxx (3 группы по 4 символа)
| Блок кода | ||
|---|---|---|
| ||
^[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}\.[0-9a-fA-F]{4}$ |
Комбинированный паттерн для Cisco (стандартный MAC + Cisco формат)
| Блок кода | ||
|---|---|---|
| ||
^[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-адреса (стандартный формат с дефисами)
| Блок кода | ||
|---|---|---|
| ||
^[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-адреса (стандартный формат)
| Блок кода | ||
|---|---|---|
| ||
^[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:
| Блок кода | ||
|---|---|---|
| ||
SN:^[0-9]{10}[A-F0-9]{6}$ |
Примеры: 2102311ABC123456, 1234567890ABCDEF
ZTE
ZTE 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}$ |
^ZTEG[0-9A-F]{8}$
^ZTEGC[0-9A-F]{7}$ |
ZTE серийные номера:
Формат ZTEG + 8 символов
Для использования в CPE_MAC_FORMAT:
UBIQUITI
Ubiquiti MAC-адреса (стандартный формат с двоеточиями)| Блок кода | ||
|---|---|---|
| ||
^SN:^ZTEG[0-9a9A-fA-F]{28}(:$ |
Примеры: ZTEG12345678, ZTEGABCD1234
Формат ZTEGC + 7 символов
Для использования в CPE_MAC_FORMAT:
| Блок кода | ||
|---|---|---|
| ||
SN:^ZTEGC[0-9a-fA9A-F]{2}){57}$ |
BDCOM (EPON оборудование)
Примеры: ZTEGC1234567, ZTEGCABCDEF1
NOKIA/ALCATEL-LUCENT
Nokia/Alcatel MAC-адреса (стандартный формат с двоеточиями)
Прошивка v2.1.x| Блок кода | ||
|---|---|---|
| ||
MAC:^([0-9A9a-FafA-fF]{2}[:-](:[0-9a-fA-F]{2}){5}$ |
MIKROTIK
MikroTik MAC-адреса (стандартный формат с двоеточиями)
| Блок кода | ||
|---|---|---|
| ||
^[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| Блок кода | ||
|---|---|---|
| ||
MAC:^([0-9A9a-FafA-fF]{2}[.]){2}(:[0-9A9a-FafA-fF]{2}){5}$ |
BDCOM (EPON оборудование)
Прошивка v2.1.x
| Блок кода | ||
|---|---|---|
| ||
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:
BDCOM12345678BD1234567890,
BDCOM87654321BDABCDEF1234
Прошивка
v3v1.
08.x
(новый формат)| Блок кода | ||
|---|---|---|
| ||
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
Прошивка
v4v3.
x0.x
и выше(новый формат)
| Блок кода | ||
|---|---|---|
| ||
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/GEPONBDXY87654321ZZ
BDCOM (GPON оборудование)
Прошивка v4.
2x.x и выше
| Блок кода | ||
|---|---|---|
| ||
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| Блок кода | ||
|---|---|---|
| ||
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
Прошивка
v5v3.
05.x
(обновленный формат)| Блок кода | ||
|---|---|---|
| ||
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 (обновленный формат)
| Блок кода | ||
|---|---|---|
| ||
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
| Блок кода | ||
|---|---|---|
| ||
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
Прошивка
v7v5.
08.x
(новейший формат)| Блок кода | ||
|---|---|---|
| ||
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 (новейший формат)
| Блок кода | ||
|---|---|---|
| ||
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 оборудование)
Прошивка
v3v2.
13.x
| Блок кода | ||
|---|---|---|
| ||
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
Прошивка
v4v3.
01.x
| Блок кода | ||
|---|---|---|
| ||
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
| Блок кода | ||
|---|---|---|
| ||
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 оборудование)
Прошивка
v2v1.
59.x
| Блок кода | ||
|---|---|---|
| ||
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
Прошивка
v3v2.
25.x
| Блок кода | ||
|---|---|---|
| ||
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
| Блок кода | ||
|---|---|---|
| ||
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 оборудование)
Прошивка
v9v8.
01.x
| Блок кода | ||
|---|---|---|
| ||
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.7FHTTABCDEF12
Прошивка v9.0.x
| Блок кода | ||
|---|---|---|
| ||
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 оборудование)
Прошивка
v5v4.
27.x
| Блок кода | ||
|---|---|---|
| ||
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
| Блок кода | ||
|---|---|---|
| ||
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-адреса
| Блок кода | ||
|---|---|---|
| ||
$conf |
$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
| Блок кода | ||
|---|---|---|
| ||
$conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$'; |
Пример 4: MAC без разделителей + с двоеточиями
$conf
| Блок кода | ||
|---|---|---|
| ||
$conf{CPE_MAC_FORMAT} = '^[0-9a-fA-F]{12}$|^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$'; |
Пример 5: Универсальный паттерн для большинства случаев
$conf
| Блок кода | ||
|---|---|---|
| ||
$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
| Блок кода | ||
|---|---|---|
| ||
$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
| Блок кода | ||
|---|---|---|
| ||
$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: Смешанная среда с оборудованием разных производителей
| Блок кода | ||
|---|---|---|
| ||
$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:^[0-9a-fA-F]{2}([:\-\.]?[0-9a-fA-F]{2}){5}$'; |
Пример 3: Только серийные номера
| Блок кода | ||
|---|---|---|
| ||
$conf{CPE_MAC_FORMAT} = 'SN:^[A-Z]{2,4}[0-9A-F]{6,12}$|SN:^[0-9A-F]{16}$'; |
Пример 4: Универсальный для большинства случаев
| Блок кода | ||
|---|---|---|
| ||
$conf{CPE_MAC_FORMAT} = |
$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]{ |
$conf{CPE_MAC_FORMAT} = 'MAC
16}$|SN:^[0- |
9A- |
F]{ |
4} |
: |
[0- |
9A- |
F]{ |
8}$'; |
Пример 5: EPON/GEPON среда с новыми вендорами
| Блок кода | ||
|---|---|---|
| ||
$conf |
$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: Полная конфигурация для крупного провайдера
| Блок кода | ||
|---|---|---|
| ||
$conf |
$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 |
$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}$'; |
Универсальные форматы серийных номеров:
Буквенный префиксы (2-4 буквы) + цифры/буквы
Для использования в CPE_MAC_FORMAT:
| Блок кода | ||
|---|---|---|
| ||
SN:^[A-Z]{2,4}[0-9A-F]{6,12}$ |
Примеры: AB123456, HWTC12345678, ZTEG87654321
Только цифры (8-16 символов) - длинные серийные номера
Для использования в CPE_MAC_FORMAT:
| Блок кода | ||
|---|---|---|
| ||
SN:^[0-9]{8,16}$ |
Примеры: 12345678, 1234567890123456
Смешанный формат: буквы + цифры + буквы
Для использования в CPE_MAC_FORMAT:
| Блок кода | ||
|---|---|---|
| ||
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}$