RAW SOCKETS RECV

интернет Компьютеры программирование Linux сокеты

Не знаю что делать, получение данных через RAW сокет работает только для TCP пакетов. Другие просто не принимаются. вот часть кода, та что с сокетами, просто набросок:

struct sockaddr saddr;
struct in_addr in;
sock_raw = socket(AF_INET , SOCK_RAW , IPPROTO_RAW);

saddr_size = sizeof saddr;
data_size = recvfrom(sock_raw , buffer , 65536 , 0 , &saddr , (socklen_t*)&saddr_size);

Думаю, смысл понятен, сокет создается и принимает почему-то только TCP пакеты, пробовал UDP, ICMP, не работают.

В чем причина?

Примечание:
От IPPROTO_UDP/ICMP ничего не меняется,
В вашей ссылке только описание

Примечание:
Я знаю, без рута он даже не создастся
Ответы:
> В вашей ссылке только описание
И кстати... Для правильной работы Raw сокетов потребуются root права.


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.