Как я могу найти неиспользуемые IP-адреса в моей сети? DHCP-сервер продолжает назначать один и тот же адрес, и мне нужен другой IP-адрес для тестирования моего приложения. Программное обеспечение должно работать в Windows.
Наверное, лучший способ - использовать NMAP (http://nmap.org/) в режиме сканирования ARP Ping. Использование будет примерно таким nmap -sP -PR 192.168.0.*
(или какая у вас сеть).
Преимущество этого подхода заключается в том, что он использует протокол разрешения адресов для определения того, назначены ли IP-адреса машинам. Любая машина, которая хочет быть обнаружена в сети, должна отвечать на ARP, поэтому этот подход работает там, где это не работает, когда ping-сканирование, широковещательное ping-сканирование и сканирование портов не работают (из-за брандмауэров, политики ОС и т. Д.).
Вам действительно не следует пытаться найти неиспользуемые IP-адреса в сети, использующей DHCP. Вам не следует делать это, если вы не знаете, что делаете, а вопрос о том, как это делать, предполагает, что вы этого не знаете.
Управление сетевыми адресами - это неявно организационная (а не техническая) деятельность. DHCP заставляет сетевых администраторов часто думать, что это чисто технический, но протокол хорошо спроектирован и может легко удовлетворить ваши потребности с небольшими политическими переговорами.
DHCP имеет функцию, при которой определенным системам может каждый раз присваиваться один и тот же IP-адрес (другими словами, механизм назначения может быть динамическим, но сами назначения могут быть фиксированными).
Попросите администратора DHCP создать для вас несколько записей. Если он скажет «нет», поработайте ногами и попросите своего менеджера попросить его сделать это.
Или попросите администратора DHCP выделить диапазон IP-адресов для вашего личного использования, но не обслуживать их из DHCP.
Это действительно в интересах всех. Если ваш проект стоит немного дополнительных усилий, некоторая организационная любовь будет иметь большое значение.
Я не думаю, что другие плакаты всерьез задумывались о том, что может случиться, и отчасти опасность заключается в том, что результаты конфликтов IP-адресов непредсказуемы:
Если вы переманиваете адреса, а затем они вступают в конфликт с чужой системой, результаты могут быть болезненными, например, прекращение работы.
Системы ведут себя по-разному, когда у них есть конфликты IP. Некоторые быстро падают. Некоторые просто выводят на ваш экран странные предупреждения. Потенциально некоторые системы будут бороться за IP-адрес.
Вы не знаете, какую систему вы отключите. Вы можете отключить важный сервер или в вашей системе может быть заглушка, которая начинает отвечать на реальный трафик. Или это может быть компьютер вашего начальника или какой-нибудь старший инженер, который также занимался сквоттингом IP.
Вот очень похожая история с DNS. Я работал с умным, но иногда неприятным человеком в компании, и он понимал почти все, кроме разрешения DNS. Он настроил около 80% почтовых систем компании так, что в случае незначительного сбоя моя лабораторная среда превращалась в сервер исходящей почты. Они быстро обнаружили эту проблему, но вы можете себе представить, насколько все могло бы быть, если бы моя система не поставила почту в очередь за брандмауэром.
Однажды в моей компании кто-то случайно установил свой IP-адрес на IP-адрес главного коммутатора в нашей серверной.
Чистый результат:
"WTF случилось с Network1?!?!"
Мораль истории: пожалуйста, поговорите со своими администраторами. Если вы работаете в инженерной фирме, скорее всего, у них есть процедура, чтобы дать вам адрес или даже ваш собственный диапазон.
Лично мне нравится AngryIPScanner. http://www.angryziber.com/
У вас в основном есть варианты:
Спросите свой DHCP-сервер, какие адреса он уже назначил (через веб-интерфейс, интерфейс cli или любой другой интерфейс, который использует ваш сервер). Это будет работать, если какой-либо узел в вашей сети использует DHCP для настройки (т. Е. Не имеет самостоятельно назначаемых IP-адресов). Очевидно, вам также понадобится доступ к конфигурации маршрутизатора, которого, похоже, у вас может не быть.
Пинг (или просканируйте порты) всю вашу подсеть и посмотрите, кто ответит. Это может не работать, если на определенных узлах отключен эхо-запрос ICMP (например, «Блокировать пинг»).
Как упоминалось в других ответах, сканирование ping или сканирование NMAP вашей локальной подсети, вероятно, лучший способ определить свободные IP-адреса, если у вас нет доступа к DHCP-серверу.
тем не мение, имейте в виду две вещи.
Ваши сетевые администраторы, вероятно, не будут любезно относиться к тому, что вы запускаете сканирование портов / ping; Если у них есть что-то вроде достойной защиты от вторжений, не удивляйтесь, когда они с недовольным видом подойдут к вашему столу.
Смешивание статической конфигурации и DHCP в одной подсети может вызвать проблемы. Если вы настраиваете устройство с IP-адресом, который вы считаете «свободным» при сканировании подсети и т. Д., А затем DHCP-сервер передает этот адрес другому узлу, ваша машина и «настоящий» владелец IP-адреса будут постоянно бороться за у кого должна быть запись ARP для этого IP. Это приведет к прерывистой связи для обеих машин. (И снова возможный визит вашего дружелюбного соседского администратора).
Если вам действительно нужен другой IP-адрес для тестирования, можно ли обратиться к администраторам вашей сети и спросить? Они смогут настроить запись DHCP вручную, которая предоставит вашему компьютеру конкретную аренду DHCP на основе его MAC-адреса.
Проверьте fing. Раньше он назывался lookatlan. Это небольшая установка, но она просканирует сеть и предоставит вам простой графический интерфейс, чтобы увидеть, что используется, а что нет.
Если вы используете Windows Server DHCP, то программа просмотра DHCP показывает используемые IP-адреса. Возможно, у вас очень небольшой диапазон IP, попробуйте расширить диапазон.
У меня была аналогичная проблема при использовании маршрутизатора для назначения IP-адресов. Мое решение, я расширил диапазон, и это, похоже, сработало.