Здравствуйте. Задача в следующем. Есть система, которая генерирует ip атакующего, на основании которого необходимо закрывать соединения при помощи pfctl -k id -k id/creatorid. pfctl -ss -vv выводит все соединения с необходимыми данными (если udp, то это 3я строка, если tcp, то 4я).
Вопрос в том, как сформировать запрос с аргументом так, чтобы выводилось id и creatorid при введении аргументов для ip?
Вывод pfctl -ss -vv
iface0 udp 10.0.0.1:531 <- 10.0.0.100:59843 SINGLE:MULTIPLE
age 00:00:21, expires in 00:00:09, 1:1 pkts, 62:62 bytes, rule 106
id: 000000001d123456 creatorid: 1111a1ad
iface1 tcp 10.0.1.1:34394 -> 10.0.0.102:10112 FIN_WAIT_2:FIN_WAIT_2
[461321051 + 2146816] wscale 7 [3245516099 + 26880] wscale 8
age 00:00:07, expires in 00:01:23, 5:4 pkts, 265:186 bytes, rule 57
id: 000000001d234567 creatorid: 1112a1ad
iface2 tcp 10.1.1.1:10222 <- 10.0.0.1:35828 FIN_WAIT_2:FIN_WAIT_2
[2022818706 + 26880] wscale 9 [779819541 + 71679] wscale 7
age 00:00:37, expires in 00:00:53, 5:5 pkts, 297:282 bytes, rule 106
id: 000000001d345678 creatorid: 1113a1ad
Например, необходимо при выполнении команды pfctl -ss -vv | awk/sed.... c аргументом ip, вывести id и creatorid всех подключений где фигурирует этот ip
К примеру нам дали 10.0.0.1($1), при выполнении pfctl -ss -vv | awk/sed...$1 должно вывести
id: 000000001d123456 creatorid: 1111a1ad
id: 000000001d345678 creatorid: 1113a1ad
Заранее спасибо.
Edit. Основной запрос получился таким
awk '/10.0.0.1:/ {getline; getline; if (/age/){getline} {print}}' states
Поправьте если коряво.