The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Широковещательный запрос и поимка ответа (perl sockets udp)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Широковещательный запрос и поимка ответа (perl sockets udp)" 
Сообщение от yumm emailИскать по авторуВ закладки on 07-Апр-05, 15:21  (MSK)
Задача: в сети живет сервер (возможно, что и не один), о котором известно, что если он поймает на определенный порт широковещательный запрос, то обязательно ответит отправителю. Нужно послать такой запрос и получить список всех ответивших серверов. Желательна реализация на Perl'e.

Вот такой кусок кода:
<---
$sock = IO::Socket::INET->new(Proto     => 'udp',
                              Broadcast => 1,
                              LocalPort => $srcport,
                              PeerPort  => $dstport,
                              PeerAddr  => inet_ntoa(INADDR_BROADCAST)
                              ) or die "sender socket: $@\n";
$sock->send($msg) or die "send: $!";
--->
шлет broadcast запрос. В сниффере (ethereal) я вижу приходящий ответ... Но вот поймать его никак не получается... И сразу встает вопрос: если этих ответов будет несколько, что делать? Спасибо.

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Широковещательный запрос и поимка ответа (perl sockets udp)" 
Сообщение от gr Искать по авторуВ закладки on 07-Апр-05, 15:34  (MSK)
>Задача: в сети живет сервер (возможно, что и не один), о котором
>известно, что если он поймает на определенный порт широковещательный запрос, то
>обязательно ответит отправителю. Нужно послать такой запрос и получить список всех
>ответивших серверов. Желательна реализация на Perl'e.
>
>Вот такой кусок кода:
><---
>$sock = IO::Socket::INET->new(Proto     => 'udp',
>                              Broadcast => 1,
>                              LocalPort => $srcport,
>                              PeerPort  => $dstport,
>                              PeerAddr  => inet_ntoa(INADDR_BROADCAST)
>            
>          
>       ) or die "sender
>socket: $@\n";
>$sock->send($msg) or die "send: $!";
>--->
>шлет broadcast запрос. В сниффере (ethereal) я вижу приходящий ответ... Но вот
>поймать его никак не получается... И сразу встает вопрос: если этих
>ответов будет несколько, что делать? Спасибо.


в perl cookbook есть пример сервера udp

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Широковещательный запрос и поимка ответа (perl sockets udp)" 
Сообщение от yumm emailИскать по авторуВ закладки on 07-Апр-05, 15:42  (MSK)
>в perl cookbook есть пример сервера udp

ну хорошо (про пример я есс-но знаю)... пишу я дальше следующее:
<---
$sock->close();

$sock = IO::Socket::INET->new(LocalPort => $srcport, Proto => 'udp')
  or die "socket: $@";

while ($sock->recv($msg, $maxlen)) {
    my ($port, $ipaddr) = sockaddr_in($sock->peername);
    my $ip = inet_ntoa($ipaddr);
    print "$ip\n";
}
--->
...и ничего не принимаю... хотя в сниффере пакетов только летают. почему?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Широковещательный запрос и поимка ответа (perl sockets udp)" 
Сообщение от yumm emailИскать по авторуВ закладки on 08-Апр-05, 10:58  (MSK)
Переформулирую вопрос. Мне нужно очень примитивную вещь реальзовать (все равно на чем на самом деле, но лучше на c или perl), создать сервер слушающий по порту NNNN, послать broadcast сообщение, принять все ответы и определить кто-же (ip) ответил. Все. Неужели никто не делал?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру