Список компьютеров сети

  • Автор темы Автор темы Nixon
  • Дата начала Дата начала

Nixon

Новичок
Список компьютеров сети

Подскажите, пожалуйста, как получить список компьютеров сети? Интересуют имена компьютеров, доступных по протоколу Samba из всех доступных рабочих групп сети.
 
jonjonson, может быть, я ошибаюсь, но этот класс работает напрямую через "/usr/bin/smbclient", а у меня винда...
 
Всех клиентов? Если не знаешь диапазон IP адресов сети - тогда будь готов пинговать весь диапазон IP адресов :) Их, всего-то 2 в 32ой степени штук. Не так и много :)
Нет сетевого протокола, по-которому можно получить ответ от всех включённых компьютеров и занести их в базу. Либо пинг, либо конектиться к каждому и проверять успешность создания соединения, тогда и получится список рабочих машин.
Насколько я понимаю технологию Ethernet, получить адреса всех включеных машин там не возможно (ну, если, конечно, не написать для этого соответствующий протокол).
The class can browse shared directories, browse printer queues, retrieve files, print files, cancel print jobs, delete files and directories.
Собственно в описании класса и не написано, что можно получить все клиенты...Т.е. можно работать с конкретным из них, но получить всех нельзя.
 
Ну а как же тогда винда строит этот список? пропинговывает постоянно 2^32 адресов? =-O
 
У винды есть ARP таблица, в которой содержится часть этих адресов (соответствие mac-IP). Причём, если установлен в сети arp-proxy, то такой таблицы у неё вообще нет (вернее есть, но там запись только 1на, указывающая mac именно вот этой самой прокси).Если, конечно, прописана статическая ARP таблица, то у неё содержится инормация о всех клиентах твоей подсети (т.е. до ближайшего роутера). Если комп только что включился, то у него почти пустая арп таблица :)
А вообще, винде нет смысла пинговать 2 в 32ой адресов т.к. оно пингует только твою подсеть (в соответствии с маской), а пропинговать 256 адресов не состовляет труда.

-~{}~ 07.10.07 17:46:

Если вы настаиваете на существовании таблицы адресов клиентов в винде, то может коммандочку подскажете, как её посмотреть? (посмотреть АРП таблицу можно arp -a, таблицу маршрутизации route print). Соответственно, если существует такая таблица, то её должно быть можно посмотреть.
 
Естественно, но винда не даёт сделать Broadcast-ping :)
Линукс - даст.

-~{}~ 07.10.07 18:18:

ну, или имеется ввиду получать доступ к ресурсам по broadcast адресу? :D
 
Nixon, а не пытался изучить утилиты командной строки системы с которой работаешь?

nbtstat
 
И что эта комманда даёт? Эта таблица подключений. Т.е. если комп ни к кому не подключался по протоколу TCP, то таблица будет пустой. У меня, например, в ней сейчас только 1на запись, хотя в сети компьютеров ОЧЕНЬ много.
 
Pechkin, а дальше тему командной строки развивать не хочешь? Тогда извини, я за тебя разбираться с этим вопросом не стану.
А ведь ещё на вижуал васике можно COM объект отписать, получающий список, и скомпилить в dll, а потом через интерфейс COM с php дёргать. Кто ищет, тот найдёт.
 
Почему же. В Линуксе можно получить ответы от всех компов коммандой ping -B (кажется так), и таким образом заполнить АРП таблицу всеми включёнными клиентами, а после из неё прочитать IP адреса. Но в винде нет широковещательного пинга, поэтому такой метод не годится. Насколько мне известно, винда не хранит список включённых компов, поэтому взять список клиентов, не пингуя всех вроде нет возможности. Можно пингануть подсеть циклом и потом работать с АРП таблицей.
 
Pechkin, проведи в винде эксперимент, например:
ping 192.168.255.255
если сеть
192.168.255.0 имеет маску 255.255.255.0
а потом дай команду
arp -a
И ты удивишься :)
Вопрос в другом, как получить список виндовых машин (их имена?), если не используется стек протоколов TCP/IP, а скажем небиуе бегает поверх новеловского протокола. Впрочем это уже усложнение ситуации.
 
У меня лично приходит ответ от гейтвэя и я получаю доп. запись в таблице АРП:
10.10.80.1 ......
Сеть соответственно 10.10.80.0/24
Собственно, никакого удивления, широковещательный пинг не прошёл.

-~{}~ 08.10.07 13:30:

Проблема пинга даже не в этом, а в том, что большинство фаерволов и роутеров блокирует протокол ICMP, поэтому такой вариант вообще не годится. Нужно думать каким-то другим способом.
 
Сверху