The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"ARP & RAW_SOCKET"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"ARP & RAW_SOCKET"
Сообщение от dmitry emailИскать по авторуВ закладки on 15-Авг-03, 00:14  (MSK)
Вопрос, конечно, дурацкий...
Нужно сделать запрос RARP.
Я знаю формат ip пакета для ARP/RARP. Знаю, что создать сокет надо SOCK_RAW и указать IPPROTO_RAW.
делаю это так:
fd = socket( PF_INET, SOCK_RAW, IPPROTO_RAW);
char packet[72];
sockaddr_in addr;
memset( packet, 0, 72);
// формирую пакет
....
sendto( fd, packet, 72, 0, ( sockaddr *)&addr, sizeof( addr));

теперь вопрос к знатокам:
1) какой addr делать?
2) в packet должен быть полностью ip-пакет или только его RARP-часть?
(писать ли вначале приемник, передатчик, тип?)

WBR, Dvorkin

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "ARP & RAW_SOCKET"
Сообщение от Dvorkin emailИскать по авторуВ закладки on 15-Авг-03, 12:34  (MSK)
>Вопрос, конечно, дурацкий...
>Нужно сделать запрос RARP.
>Я знаю формат ip пакета для ARP/RARP. Знаю, что создать сокет надо
>SOCK_RAW и указать IPPROTO_RAW.
>делаю это так:
>fd = socket( PF_INET, SOCK_RAW, IPPROTO_RAW);
>char packet[72];
>sockaddr_in addr;
>memset( packet, 0, 72);
>// формирую пакет
>....
>sendto( fd, packet, 72, 0, ( sockaddr *)&addr, sizeof( addr));
>
>теперь вопрос к знатокам:
>1) какой addr делать?
>2) в packet должен быть полностью ip-пакет или только его RARP-часть?
>(писать ли вначале приемник, передатчик, тип?)
>
>WBR, Dvorkin


Вопрос был задан некорректно - простите, было поздновато...
Перефразирую.

Вот я открыл SOCK_RAW.
Для отправки RARP - запроса нужно сформировать Ethernet-кадр вида:
MAC передатчика, MAC приемника, тип пакета(езернет заголовок) + RARP-данные. SOCK_RAW позволяет ли мне указать MAC получателя в заголовке Ethernet, или сетевая подсистема подставляет его сама на основе sockaddr? Если так, то чем надо пользоваться для самостоятельного формирования полного Ethernet-пакета? А может лучше формировать Multicast адрес получателя?

WBR, Dvorkin

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "ARP & RAW_SOCKET"
Сообщение от qq Искать по авторуВ закладки on 15-Авг-03, 18:45  (MSK)
вот ты передаешь буффер в sendto, это будет полный пакет ethernet, начиная с   destination mac
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

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




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

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