пятница, 28 сентября 2012 г.

Пропинговать подсеть или IP диапазон

По сути эта заметка продолжение статьи Axis P1344 Настройка IP-адреса при помощи ARP / Ping.

Чтобы изложение было более полным необходимо немного коснуться и вопроса выбора статического адреса для IP камеры в чужой сети (…которую делали не Вы, а зачастую и обслуживали, расширяли, модернизировали случайные люди…).

Этот же простейший подход может быть использован и в иных случаях.

Итак, посещая первый раз площадку потенциального клиента (партнера) по трансляции, уже без удивления узнаю, что админа нет. Был знакомый, друг, “недавно уволился”, “просто пропал”, “у нас удаленная поддержка была, но сейчас ее нет” и т.д и т.п. В этом случае сразу необходимо осмотреть их главный кабельный ввод и состояние концентраторов (свичей, хабов, маршрутизаторов) в сети. С большой долей вероятности Вас ожидают “удивительные открытия”.

серверный шкаф благотворительного фонда Прокаевой кабельный ввод компании Исток медиаконвертер и Quidway S2300 switch клуба Prime

Следующим шагом необходимо попросить выполнить простейшую диагностику их сети с не менее, чем 2-х рабочих станций. Вообщем-то здесь тоже ничего нового я не скажу, могу лишь обратить внимание на несколько моментов, при этом оценку состояния их канала с площадки к провайдеру, пока опускаю, на это необходима отдельная заметка (статья).

С большой долей вероятности на рабочих станциях (компьютерах), диагностику с которых Вам разрешат выполнить, будет стоять WindowsXP “затвиканная до смерти”, с отключенным автообновлением и брэндмауэром, входящая в состав рабочей группы и пользователем работающим с правами локального администратора, поэтому дальнейшее изложение касается именно Windows XP SP3 ru.

Собственно задача:

  • увидеть их шлюз по умолчанию – на нем будем  настраивать пробросы портов на камеру;
  • увидеть подсеть – ее параметры понадобятся для конфигурирования камеры;
  • увидеть все устройства в подсети, чтобы правильно выбрать статический адрес для камеры.

Для этого – просим сопровождающего Вас представителя компании включить по возможности все компьютеры, принтеры, точки доступа, кассовые аппараты и т.д.  их клубной сети. С 2-х (по возможности более) рабочих станций в окне командной строки выполнить и записать на листочек результат вывода нескольких команд:

  • ipconfig
  • route print
  • netsh inter ip show address
  • netsh inter ipv6 show address
  • net view

Почему именно этих? Конечно можно установить хорошую утилиту диагностики и получить полную информацию о сети. Просто использование встроенных команд операционной системы исключит ваше вмешательство в работу их  компьютеров и исключит недоразумения вида “а он там что-то настраивал”

Последней командой необходимо увидеть все MAC адреса подсети, а вместе с ними придет понимание “сколько и каких устройств в этой подсети”, т.е просканировать подсеть. Почему недостаточно просто пропинговать диапазон адресов подсети? Ответ прост – не все устройства ответят на ping, но при попытке пингования устройства по IP адресу MAC адрес сетевой карты попадет в локальный arp кэш рабочей станции. Его мы можем затем вывести командой arp –a. К сожалению MAC адреса в локальном кэше хранятся не более 1-2-х минут (если они не прописаны статически).

Итак, последней командой вводим:

@echo off & cls & for /l %i in (1,1,254) do ping -n 1 -w 400 -l 1 192.168.1.%i | arp -a 192.168.1.%i | findstr динам >> file.txt & echo 192.168.1.%i

В приведенном примере выше предполагается, что сеть 192.168.1.0 mask 255.255.255.0 (В вашем случае это могут быть иные значения).

Этой командой мы пингуем все адреса (сканируем подсеть) в диапазоне 192.168.1.1 по 192.168.1.254, после каждого ping-а выводим локальный arp кэш для каждого пропигованного адреса в файл file.txt и выводим в окно консоли текущий пингуемый адрес. Команда выполняется чуть более 1-й минуты. Открыв полученный файл, например Блокнотом Windows или выполнив -

type file.txt

в окне консоли, увидим все IP и MAC адреса подсети.

Вероятнее всего у Вас теперь будет совершенно достаточно информации для правильного конфигурирования видеокамеры.

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

Чтобы ускорить заполнение arp кэша в командном файле (батнике) выполняется “залп пингов” (каждый новый запуск команды ping не дожидается ответа предыдущей). Кроме того адрес подсети для сканирования выбирается автоматически и исходит из предположения, что это будет сеть вида 192.168.x.x/24 (Это не всегда бывает так, поэтому подкорректируйте батник при необходимости).

Батник неплохо документирован и может быть легко модифицирован Вами под собственные нужды. Скачать его можно по этой ссылке - Простой сканер подсети встроенными средствами Windows.

Если Вам повезло и Вы столкнулись со стабильно работающей сетью на основе рабочей группы, то еще простейшие командные файлы для сканирования подсети можете посмотреть на странице net view ping Пропинговать сетевое окружение. Для их корректной работы необходимо правильно функционирующая служба браузинга на рабочих станциях подсети.

См. также:

3 комментария:

Сергей Цуркан комментирует...

Здравствуйте! очень кстати, что нашел Вашу информацию по работе в сети, спасибо. Но хочу спросить у вас: Вы выложили батник "Простой сканер подсети встроенными средствами Windows" и в конце запроса батник выдает какие сейчас задействованы IP адреса. Скажите пожалуйста, какие надо добавить еще строки, чтобы в конце полученного списка адресов, помимо: Адрес Ip, Физический адрес, Тип была и еще + Имя машины в сети, а также с возможность вывода всей информации в txt файл? Мой адрес servoyager@gmail.com. Буду признателен за ответ с батником.

Yuriy комментирует...

Например так:

:: Выводит список компов в сети в виде Имя - Адрес - Доступные шары
:: Если имя share-ресурса состоит из двух и более слов, отображения нет.
:: Повторный запуск производить через 10-15сек, иначе сбоит.

FOR /F "tokens=1 delims=\ " %%n IN ('net view^|FIND "\\"') DO (
FOR /F "tokens=2 delims=[]" %%i IN ('ping -a -n 1 -w 0 %%n^|FIND "["') DO (
ECHO %%i %%n
REM ~ NET VIEW \\%%n|FIND " "
FOR /F "tokens=1,2,3,4 delims= " %%a IN ('net view \\%%n^|FIND " "') DO IF "%%b"=="Диск" (ECHO %%b: \\%%n\%%a) ELSE IF "%%b"=="Печать" (ECHO %%b: \\%%n\%%a)
)
)

echo.
echo.
echo Сканирование подсети завершено

Однако это подойдет лишь для WinXP ru, т.е. для англоязычной версии надо вносить поправки.
Сканеры на батниках просты, но требуют "привязки" к ОС с которой запускаются. Проще воспользоваться хорошей утилитой. Вышеприведенный батник был создан именно, как инструмент для задачи, которую описал.

Анонимный комментирует...

Спасибо большое за статейку... Помогла инфа.

Отправить комментарий