Искал готовую консольную утилиту для проверки IP-адресов по спискам блокировок.
Если бы в списках были только IP-адреса, можно было бы обойтись grep -x -F <ip> <file.lst>
. Это, кстати, быстрее, чем следующие варианты.
Списки блокировок бывают не только с конкретными IP-адресами, но и с подсетями в формате IP/маска, это называется CIDR. С ними grep не справится. Есть готовые библиотеки для работы с CIDR для разных языков, но мне было лень.
Нашлась утилита GitHub - jrlevine/grepcidr3: High performance search for IP addresses and CIDR ranges . С ключами -a -D вполне работает. Не путать с оригинальной grepcidr ( grepcidr for UNIX ), там поддержки CIDR в файлах нет, только в паттерне.
Есть недоработка grepcidr3 (для моего применения) - можно подсунуть сразу несколько файлов списков, но не пишет, в каком файле нашлось совпадение, и при первом же совпадении заканчивает искать. Кто бы допил…