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

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