Предположим, я хочу заблокировать IP-адреса, которые соответствуют любому диапазону из набора диапазонов. Например, я хочу заблокировать IP-адреса в любом из следующих диапазонов:
207.154.0.0 - 207.154.63.255,
216.27.0.0 - 216.27.95.255,
209,59,0,0 - 209,59,31,255
Я думаю, что неэффективно и невозможно хранить все возможные IP-адреса в этих диапазонах в памяти. Если я храню все диапазоны в хэше, мне нужно пройти по всем из них и посмотреть, находится ли IP в каком-либо из диапазонов, так что это кажется неэффективным, так как, вероятно, может быть более 100 000 диапазонов.
Есть ли способ преобразовать IP-адрес в ключ, представляющий диапазон? Так что, если у меня есть IP 207.154.1.0 и 207.154.2.0, они оба отображаются на один и тот же ключ, который представляет диапазон 207.154.0.0 - 207.154.63.255?
Игнорирование проблем / альтернативных решений для блокировки IP-адресов ... Я знаком с iptable, htaccess, подстановочными знаками, регулярными выражениями и т. Д. Какой эффективный способ хранить эти диапазоны IP-адресов в хэше?