@largotek

Как получить (или создать) свободный ip адрес в локалке?

Здравствуйте, уважаемые эксперты.

Тут такая проблема. Пишу модуль для продукта, и он должен, когда запускаются приложения, которые слушают какой-то ip (читай серверы), делать так, чтобы сервер слушал другой ip.

Пример:

Запускается apache, когда он пишет вызывает функцию bind() чтобы зарегистрироваться, что он слушает 80 порт и какой то ip, а точнее тот ip, который ему дала система, а системе в свою очередь wi-fi роутер, маршрутизатор, провайдер и т.д.

У меня написан lsp провайдер, который перехватывает эти вызовы. И во время выполнения bind() меняет ip с того, что был по умолчанию, на [U]свой.[/U] Для того чтобы в систему добавить новый IP, юзаю AddIPAddress, и тогда в у моей сетевой карты появляется еще один ip адрес, но виртуальный.

Внимание, вопрос. Как мне узнать какой ip адрес добавлять? Для того чтобы быть в подсетке.

Я сначала дума,л что нужно запросить у dhcp сервера инфу, но dhcp сервер не всегда бывает.
Может, проверять диапазон ip в локалке и выбрать свободный. Подскажите, плиз!
  • Вопрос задан
  • 3887 просмотров
Пригласить эксперта
Ответы на вопрос 1
Наверное 100%-го решения не существует. Какой-либо хост в сети может на полных правах владеть IP и при этом ничего не отправлять и даже не отвечать на ICMP.

Попробуйте в течение часа-двух помониторить ARP-таблицу локальной сети :
www.rsdn.ru/forum/winapi/13779.flat
Основная масса рабочих станций в ней отметится.
Потом для гарантии можно и сканом по выявленному диапазону пройтись,
и затем снова изучить ARP-таблицу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы