У меня есть скрипт Python, который входит в брандмауэр PaloAlto и блокирует или удаляет IP-адрес из группы адресов. Затем он выполняет «проверку» того, что действие произошло, используя сопоставление re.shearch из выходных данных с соответствующим IP-адресом, чтобы проверить, было ли действие успешным.
Я столкнулся с проблемой, когда получаю противоречивые или неправильные результаты, потому что при поиске стандартного вывода из брандмауэра длина терминала ssh приводит к переносу текста на следующую строку.
Ниже приведен пример вывода брандмауэра.
[Blocked IPS] 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 19
2.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9 192.16
8.1.10 192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14 192.1
68.1.15 192.168.1.16 192.168.1.17 192.168.1.18 192.168.1.19
Ниже приведен мой простой поиск, в котором я ищу IP-адрес в выходных данных брандмауэра.
re.search(ipAddress, output):
Вы можете видеть мою дилемму. Если я ищу «192.168.1.5» или «192.168.1.10», то произойдет сбой из-за переноса текста в вывод.
Мне нужно регулярное выражение, которое будет отображать всю строку, даже если оно переносится на следующую строку, но я не смог создать или найти что-либо, что работает.
Я работаю в Python только около года и в значительной степени самоучка. Я только начал использовать регулярные выражения.
Заранее спасибо за помощь этого новичка!