Я пишу программу на Python, которая загружает список неверных IP-адресов и добавляет / удаляет их из таблицы в OpenBSD pf. Программа загружает список, форматирует их (как объекты IP-адреса) и передает их команде pfctl
. Прямо сейчас у меня это работает как цикл, который вызывает pfctl
один раз для каждой строки, таким образом:
for item in addedlist:
subprocess.run(['pfctl', '-t', const.PF_LISTNAME, '-T', 'add',\
str(item)], check=True, stderr=subprocess.DEVNULL)
for item in deletedlist:
subprocess.run(['pfctl', '-t', const.PF_LISTNAME, '-T', 'delete',\
str(item)], check=True, stderr=subprocess.DEVNULL)
где:
addedlist
и deletedlist
- это отформатированные списки объектов IP-адресов, которые должны быть добавлены и удалены соответственно.
Я хотел бы выполнить команду pfctl
только один раз для каждого списка и передать addedlist
и deletedlist
команде за один снимок, поскольку списки ( кашель IPv6 * кашель *) могут быть довольно длинным Однако, когда я пытаюсь это сделать, Python жалуется, что не ожидает списка.
Буду признателен за любую помощь.