управление сетевой картой (C/C++)

Модератор: Модераторы разделов

Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

управление сетевой картой

Сообщение RasenHerz »

возникла необходимость создания программы, которая сможет сама(т.е. не вызывая штатные утилиты Linux) менять MAC-адрес сетевой карты, отключать/включать ее и т.д. так что код вроде:

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

pid_t child;
child = fork();

if (child == 0){
   char *argv[] = {"ip", "link", "set", "dev", "eth0", "down", NULL};
   execvp(argv[0], argv);
}

использовать нельзя. сойдет даже просто указание заголовочного файла со всеми необходимыми ф-циями.
Спасибо сказали:
int_0dh
Сообщения: 20
ОС: Linux

Re: управление сетевой картой

Сообщение int_0dh »

Вам бы подошли ioctls .
например для того чтобы активировать интерфейс - SIOCSIFFLAGS с IFF_UP, чтобы сменить MAC - SIOCSHWADDR
ну и так далее. посмотреть можно в net/core/dev.c
Спасибо сказали: