Cisco показывает регулярное выражение изменения регулярного выражения dmvpn в php-скрипте

Сценарий, который запрашивает маршрутизаторы cisco для извлечения выходных данных «show dmvpn» от маршрутизаторов концентраторов луча. Однако мы обновили маршрутизатор-концентратор, и новая IOS теперь показывает информацию о дате и времени для команды «show dmvpn». Предыдущие версии IOS отображают только «никогда», и при использовании сценария для более новых маршрутизаторов IOS возникают ошибки только из-за (\S+).

Я попытался прочитать о регулярных выражениях, однако не смог понять, как соединить [3x] слово/дату/время.

Работающий:

if(pregmatch("/^\s+\d+\s+(\d+\.\d+\.\d+\.\d+)\s+(\d+\.\d+\.\d+\.\d+)\s+(\S+)\s+(\S+)\s+(\S+)/",$line,$hit))


#show dmvpn
 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1   192.168.1.1     42.10.10.10    UP    **never**    DN
     1   192.168.1.1     42.10.10.10    UP    **never**    DN
     1   192.168.1.1     42.10.10.10    UP    **never**    DN

Не работает: регулярное выражение не работает на более новых IOS, которые фактически показывают дату/время для таймеров туннеля Up/Down:

#show dmvpn
 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1     192.168.1.1     42.10.10.10    UP **08:59:16**    DN
     1     192.168.1.1     42.10.10.10    UP **04:11:24**    DN
     1     192.168.1.1     42.10.10.10    UP    **2d13h**    DN
     1     192.168.1.1     42.10.10.10    UP     **3w0d**    DN
     1     192.168.1.1     42.10.10.10    UP    **5d00h**    DN

Я дошел до того, что предположил, что мне нужно добавить (\d+:\d+:\d+) рядом со 2-м последним (\S+) в коде, но не знаю, как их соединить, и также включил туда 3w0d и 5d00h .

Это похоже на простое исправление регулярных выражений, однако в настоящее время выходит за рамки моей области кодирования. Я также пытался найти ответ, но все продолжают использовать разную терминологию для «регулярных выражений» и «регулярных выражений».


person LethalGimmick    schedule 16.06.2013    source источник
comment
Ваш код похоже, работает, или вы хотите проверить ввод?   -  person HamZa    schedule 16.06.2013
comment
Я согласен с Хамзой. \S+ соответствует никогда, 08:59:16 или 5d00h. Вам нужно разобрать его, чтобы справиться с этим?   -  person Thibault    schedule 09.08.2013
comment
@HamZa Думаю, с регулярным выражением все в порядке, тогда результаты должны проверяться для вывода. Я добавил функцию, которая соответствует и повторяет результаты. все еще не покажет для новых IOS cisco.   -  person LethalGimmick    schedule 12.08.2013
comment
@LethalGimmick, лолвут, ты отвечаешь через 2 месяца? Если вы хотите поддерживать другие маршрутизаторы, вам нужно предоставить больше входных данных.   -  person HamZa    schedule 12.08.2013
comment
@LethalGimmick Теперь давайте просто подождем еще 2 месяца ответа.   -  person HamZa    schedule 12.08.2013
comment
Я совершенно забыл, пока @Thibault не ответил и не получил электронное письмо с ответом. Почему-то я так и не увидел и не был уведомлен о вашем ответе HamZa   -  person LethalGimmick    schedule 12.08.2013


Ответы (1)


Ваше регулярное выражение должно соответствовать строкам только в том случае, если вы находитесь в туннельном режиме: $tunnel_int = TRUE Но пример кода, который вы нам дали, не содержит строки, начинающейся с «Туннель», поэтому вы не проходите в туннельном режиме, поэтому вы никогда не пытаетесь сопоставить регулярное выражение. Вот почему, даже если регулярное выражение правильное, скрипт не работает.

Ваша проблема связана с алгоритмом, а не с регулярным выражением. Но так как мы не знаем, что вы пытаетесь сделать и что вы пытаетесь протестировать, нам трудно помочь.

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

Если у вас есть более конкретная информация, вы можете попросить более точную помощь по теме.

Удачи вашему проекту.

person Thibault    schedule 12.08.2013