В чем разница между адресом, который не указан в вашей таблице, и разблокированным адресом? Если большинство адресов разблокировано, то, может быть, вам следует представить это, отсутствуя в таблице?
В противном случае, если вы храните адреса IPv4 (не доменные имена), примите предложение Чарльза Бретанаса и сохраните адреса в виде целых чисел. Если это так, вы также можете добавить другое 32-разрядное целое число для маски сети, чтобы вы могли хранить целые диапазоны (т. Е. Для блокировки каждого адреса 10.0.0.0 - 10.255.255.255, вы сохраняете адрес 10.0.0.0 как одно целое число и маску сети 255.0.0.0 как другое целое число). Это может значительно уменьшить количество строк (в зависимости от поведения блокировки), но также усложняет эффективный запрос определенного адреса.
Те же базовые методы могут применяться и к IPv6-адресу, за исключением того, что они длиннее.