Файл конфигурации брандмауэра Juniper в словарь

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

я пробовал разделить текст на "{" и "}" и кучу разных вещей, но, похоже, не помогает

    family inet {
        replace:
        /*
        ** $Id:$
        ** $Date:$
        ** $Revision:$
        **
        */
        filter bridge {
            interface-specific;
            term rule100 {
                from {
                    source-address {
                        10.0.0.1/32;
                    }
                    destination-address {
                        10.0.0.1/32;
                    }
                    protocol tcp;
                    destination-port 80;
                }
                then {
                    discard;
                }
            }
      }
    }
}

я ожидаю такой словарь python

dic = { "term rule100" : {
                "from" :{
                    "source-address" : "10.0.0.1/32;",
                    "destination-address" : "10.0.0.1/32;",
                    "protocol" :"tcp;", "destination-port" : "80;",
                    "then" : "discard;"
                },
            }
}

person Ziyed Becha    schedule 10.05.2019    source источник


Ответы (1)


У меня была похожая проблема на моей работе, чтобы показать настроенные значения в красивом отформатированном пользовательском интерфейсе, и чтобы получить последнюю конфигурацию, я запускал команды CLI, используя формат «отображать xml». Например. показать зоны безопасности конфигурации | отображать xml

Это возвращает вывод в удобном формате xml, который затем можно прочитать с помощью различных средств чтения XML.

Вы также можете использовать опцию «отобразить json», которая возвращает вывод в формате json.

person Amit Ravi    schedule 20.08.2019