Подскажите пожалуста!! Как ОСь (Win или *nix) опредиляет компы в лок. сети? Например: Мой ПК - ИП 192.168.1.1 маска 255.255.255.0 В сети 5 комп. подключеных через свитч. Неужели идёт перебор адресов попадающих под мамку сети.!?? Протокола для даной ситуации вроде нет!!!
1. Для SMB протокола нужен извесный ИП адрес! 2. Подержка SMB протокола на обоих ПК А если ИП неизвестен и SMB нету, какие варианты?
ARP протокол, система шлёт широковещательный (в смысле MAC адрес=FF-FF-FF-FF-FF-FF) ARP-request пакет, содержащий интересующий IP адрес, на этот запрос отвечает ARP-replay пакетом, содержащим в числе прочего и MAC адрес, только тот хост, IP адрес которого совпадает с IP адресом запроса. Данное соответсвие IP-MAC адресов хранится в локальном ARP кэше некоторое время.
С ARP япротоколом я знаком, он работает только для оприделения МАС по ИП, или ИП по МАС. В других варинтах ответа непоследовало.
Ну посылайте в цикле ARP запросы с IP адресом в теле запроса, меняющимся от первого до последнего возможного в данной сети, и в ARP кэше получите список IP и MAC адресов всех живых устройств сети.
Правда есть несколько нюансов - функция SendArp() из iphlpapi.lib работает ооочень медленно, RAW сокеты не позволяют создать ARP пакет, остаётся лишь протокольный NDIS драйвер, наподобие присутствующего в Виндах начиная с Windows XP ndisuio.sys, с драйвером проблемы - в x64 системах неподписанный драйвер не работает. Но есть путь попроще - если обнулить ARP кэш и посылать в цикле к примеру UDP пакеты на интервал адресов сети - система сама будет посылать ARP запросы для установления соответствия MAC - IP адресов и кэш в скором времени будет заполнен актуальными адресами живых устройств сети. Из минусов - большой оверхед, для повышения точности необходимо будет послать минимум парочку UDP пакетов с промежутком ~10-50 мс. между ними. Алгоритм реально работает и реализован в моей бесплатной утилите мониторинга сети - "professional Look at Net", взять можно здесь: http://netmontools.com/download/prolanet-setup.exe
Спасибо! Надо посмотреть. А нащёт РАВ.!!!!!! Я на онове ВинПКАП строю свою иеархию протоколов, тачто проблем с ETHERNET пакетами нет!!!
А разве не netbios занимается построением списка компов из сетевого окружения? Протокол, который ещё постоянно фильтровать надо на шлюзах, иначе broadcast трафик постоянно растёт с каждым новым подключённым вендокомпом.
вообще изначально вопрос не корректный - определение компов по какому протоколу? что значит определяет, в каком случае? автор - конкретизируй. ps. МЛЯ, ШКОЛОТА, УЧИТЕ РУССКИЙ ЯЗЫК! ПЕРЕЧИТЫВАЙТЕ ЧТО ПИШЕТЕ, ИСПРАВЛЯЙТЕ ОШИБКИ! ЗА**АЛИ!!!
Для тех кто в ТАНКЕ! Вопрос! Существует протокол с помощью которого можно определить какие компьютеры подключены к локальной сети????? При условии что мы незнаем ни МАК-адресов ни IP - адресов. ПС. loginrl_103 А что твой компилятор глючит!? )))
как таковых протоколов для этой задачи нету, единственное - вендокомп начинает засирать сеть броадкастами - как способ оповещения о себе.