Список компютеров в сети (как получить)

Модератор: Модераторы разделов

frp
Сообщения: 1445
ОС: Debian Squeeze

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

Сообщение frp »

Ну4жно получить список компютеров в сети, на которых есть UDP сервер на порте 4578.
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

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

Сообщение nesk »

frp писал(а):
20.07.2008 12:25
Ну4жно получить список компютеров в сети, на которых есть UDP сервер на порте 4578.

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

ЗЫ А вы хотите написать программку, которая будет передавать содержимое экрана одного компа на несколько других компов в сети? Да?
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

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

Сообщение frp »

Насчет nmap нет такой команды.
А насчет перебирать все компы в сети можно попробовать.
ЗЫ А вы хотите написать программку, которая будет передавать содержимое экрана одного компа на несколько других компов в сети? Да?

Да.
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

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

Сообщение MUTOgen »

frp писал(а):
21.07.2008 09:57
Насчет nmap нет такой команды.
А насчет перебирать все компы в сети можно попробовать.
ЗЫ А вы хотите написать программку, которая будет передавать содержимое экрана одного компа на несколько других компов в сети? Да?

Да.

видимо у вас пакеты не стоят nmap'овские. скачайте из репозиториев... а вообще хотел узанть на чем собираетесь писать? bash? C++?
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

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

Сообщение nesk »

MUTOgen писал(а):
21.07.2008 10:29
а вообще хотел узанть на чем собираетесь писать? bash? C++?

посмотрите последние три темы frp в разделе "программирование". Очевидно что на C++ :blush:
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Аватара пользователя
DsTr
Сообщения: 374
ОС: Arch x64

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

Сообщение DsTr »

Нужно пинговать броадкаст наверна...
JID:dstr@jabbus.org
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

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

Сообщение frp »

Пинговать броадкаст это как?
Спасибо сказали:
Burnout
Сообщения: 88
ОС: Gentoo Linux

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

Сообщение Burnout »

Допустим, что Ваш ip 192.168.0.1, а маска подсети 255.255.255.0. Т.о. броадкаст (широковещательный адрес) будет 192.168.0.255. Пакеты, которые будут отправлены на него, будут разосланы всем адресам сети.
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

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

Сообщение Mage-Warrior »

Burnout писал(а):
21.07.2008 11:57
Допустим, что Ваш ip 192.168.0.1, а маска подсети 255.255.255.0. Т.о. броадкаст (широковещательный адрес) будет 192.168.0.255. Пакеты, которые будут отправлены на него, будут разосланы всем адресам сети.

Пинговать по портам не получится. Нужны именно последовательные попытки подключения к каждому компу в заданной подсети на указанный порт. На пинг комп может по сути вообще не отвечать, находясь в сети, если firewall настроен на DROP icmp-пакетов. И, наверное, будет оптимально сразу пытаться установить соединение к 10-20 адресам.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

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

Сообщение frp »

Делаю попытку все так сделать и возникает очень странный глюк.
Сразу после вызова socket я делаю connect, если результат не -1 то добавляю компютер в список . А потом закрываю сокет вызовом close как параметр дескриптор сокета. Но close возвращает 1
В документации вообще не написано что он может возвращать 1. А еще дескриптор вроде не закрывается и одна строка портится. Если в программе после этого еще раз на другой дескриптор вызвать close, то возникает SIGSEGV. В чем дело может быть (или не стоит закрывать сокеты когда connect не удался). С TCP вроде все закрывалось без особых проблем.
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

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

Сообщение Mage-Warrior »

frp писал(а):
22.07.2008 07:53
...или не стоит закрывать сокеты когда connect не удался...

Очень верно. Логичнее и не придумаешь :) Тем более, что:
UDP обеспечивает ненадежную службу без установления соединения и использует IP для транспортировки сообщений между машинами
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

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

Сообщение frp »

Заработало. А как в программе организовать задержку на 10 миллисекунд?
Спасибо сказали:
Аватара пользователя
nesk
Сообщения: 2268
Статус: Линукссаксовец
ОС: MS Windows XP Home SP3

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

Сообщение nesk »

frp писал(а):
22.07.2008 20:36
как в программе организовать задержку на 10 миллисекунд?

nanosleep

или лучше usleep
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.

0xDEFEC8ED
Спасибо сказали:
Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

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

Сообщение halturin »

DsTr писал(а):
21.07.2008 11:17
Нужно пинговать броадкаст наверна...

на броадкаст винда не отзывается в большинстве случаев. Единственный и правильный вариант - пройтись по порядку.
Спасибо сказали: