IP-маршрут добавить с помощью ioctlLinux

Ответить
Anonymous
 IP-маршрут добавить с помощью ioctl

Сообщение Anonymous »

Для отправки широковещательных UDP-сообщений я использую следующее:
ip маршрут добавить 255.255.255.255/32 dev eth0
Итак, для вызова этого сообщения из моего приложения я использую system().
Но насколько я знаю, я могу использовать его с функцией ioctl.

Код: Выделить всё

ioctl(sockfd, SIOCADDRT, &route))
Но я не оштрафовал ни одного примера.... Пожалуйста, помогите.
Я попробовал дальше:

Код: Выделить всё

int sockfd;
struct rtentry route;
struct sockaddr_in *addr;
int err = 0;
// create the socket
if(sockfd = socket(AF_INET, SOCK_DGRAM, 0)sin_family = AF_INET;
addr->sin_addr.s_addr = inet_addr("10.0.2.15");
addr = (struct sockaddr_in*) &route.rt_dst;
addr->sin_family = AF_INET;
addr->sin_addr.s_addr = inet_addr("0.0.0.0");
addr = (struct sockaddr_in*) &route.rt_genmask;
addr->sin_family = AF_INET;
addr->sin_addr.s_addr = inet_addr("255.255.255.255");
route.rt_flags = RTF_UP | RTF_GATEWAY;
route.rt_metric = 0;
if ((err = ioctl(sockfd, SIOCADDRT, &route)) != 0) {
perror("SIOCADDRT failed");
exit(1);
}
return 0;
Но получить SIOCADDRT не удалось: неверный аргумент

Подробнее здесь: https://stackoverflow.com/questions/793 ... with-ioctl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»