LINUX.ORG.RU

Программирование сокетов в Linux


0

0

У меня 3 вопроса: 1.Как послать пакеты всем компам находящимся в лок. сети?

2.Как узнать IP адреса компов которые подключены к сети?

3.Как прослушивать все порты одного компа сразу?

В первом вопросе интересует что такое широковешательный адрес...

anonymous

и что это трудно найти в интернете документацию по TCP/IP?

anonymous
()

1. Послать пакет по broadcast адресу (широковещательный). Подробнее в RFC919 (см. так же SO_BROADCAST у setsockopt) 2. К какой сети? Находятся в одном физическом сегменте и источником? Можно по маске перебрать все компы и пингануть каждый, но вариант не стопроцентный (firewall/etc) 3. AFAIK никак

phoenix ★★★★
()
Ответ на: комментарий от phoenix

>AFAIK никак

а чем не вариант попытаться открыть с 1 по ... ;)

Автору поста: если у тебя появляется желание такое сделать, то ты делаешь что-то не так или очень плохое

Pi ★★★★★
()
Ответ на: комментарий от lb

>libpcap

а помоему он просто нахалом сниффит всё приходящее/уходящее на eth0 и понятие порта в данном случае вообще не сущ-ет. хотя для поставленной задачи наверное сойдёт

Pi ★★★★★
()
Ответ на: комментарий от Pi

> а чем не вариант попытаться открыть с 1 по ... ;)
Мосье знает толк в извращениях ;) Как насчет портов < 1024?

На самом деле можно использовать libpcap, как уже было сказано, и фильтровать руками TCP/UDP если только они интересуют

phoenix ★★★★
()
Ответ на: комментарий от Pi

>>libpcap

> а помоему он просто нахалом сниффит всё приходящее/уходящее на eth0 и понятие порта в данном случае вообще не сущ-ет. хотя для поставленной задачи наверное сойдёт

как вариант -- рукопашный анализ "чего прилетело", и быстрый старт сервера на нужный порт. для UDP это точно пройдет, для tcp, возможно, придется помучаться.

PS. если стартовать сервер для какого-либо порта по какому-либо условию, для linux можно вообще через iptables + user space queue. тогда нужно подтверждать пакет после старта сервера и всё.

lb
()
Ответ на: комментарий от lb

может надо почитать книгу "Сетевое программирование в linux" (кажется так) некого Шона Уолтона (тоже кажется)? Будет счастье!

anonymous
()

Есть еще неплохая книга "Stevens R. Unix network programming", видел в djvu

phoenix ★★★★
()
Ответ на: комментарий от anonymous

Как раз сегодня купил. Надеюсь поможет. Спасибо за ответы.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.