Здравствуйте!Возникла такая задача - есть таблица в базе данных где будут лежать айпи-адреса и информация о них.Записей около двух-трех тысяч.Нужно сделать возможность поиска "свободного" адреса (который еще не фигурировал) в пределах /24 и ./23 подсетей. (образно, /24 подсеть это 256 разных адресов вида X.Y.Z.1-254, /23 это 512 адресов вида X.Y.[Z,Z+1].1-254)Разобраны адреса хаотично, тоесть идут не подряд. Задача состоит в том, чтобы найти свободный адрес и предложить его пользователю.Вопрос как это лучше сделать?Я вижу два пути:1) Просто добавлять записи как они есть, а при необходимости поиска делать выборку всех адресов в пределах подсети (их будет максимум 256 либо 512 в зависимости от требований поиска) с сортировкой по адресу, и уже в скрипте пройтись по полученному массиву и в случае обнаружения "дыры" давать ответ.2) Изначально "забить" все возможные адреса в базу, и сделать им флаг "свободен", далее все просто соответственно.Но оба они кажутся мне немного избыточными )Может быть есть-какие либо более хитрые пути? например придумать какого-либо вида хеш таблицу или что-то вроде...Спасибо.
|