Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
olle4ka

NetLink. Редактирование сетевых интерфейсов.

02.12.2011, 17:08. Показов 1922. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разрабатывается информационная система, часть которой будет производить различные манипуляции с сетевыми интерфейсами и таблицами маршрутизации. Для решения этой задачи была выбрана универсальная библиотека NetLink. Были внимательно изучены мануалы, в которых был обнаружен следующий пример http://www.kernel.org/doc/man-... ink.3.html. Он был слегка модифицирован для получения значения MTU с клавиатуры. В итоге имеем, что данный пример не меняет MTU в системе. Хотелось бы узнать что я делаю не так, поиск в интернете на тему рабочих примеров для редактирования интерфейсов ни к чему не привел. Буду благодарна за любую помощь.
Собственно код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <errno.h>
#include <stdio.h>
#include <memory.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <linux/rtnetlink.h>
#include <sys/types.h>
#include <unistd.h>
 
int main()
{
    static char errbuf[256];
    int x;
    scanf("%d",&x);
    struct 
    {
      struct nlmsghdr nh;
      struct ifinfomsg ifa;
      char attrbuf[512];
    } req;
           struct rtattr *rta;
           struct sockaddr_nl addr;
           memset(&addr, 0, sizeof(addr));
           addr.nl_family = AF_NETLINK;
           addr.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR | RTMGRP_IPV4_ROUTE;
           unsigned int mtu = x;
           int rtnetlink_sk = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
           bind(rtnetlink_sk,(struct sockaddr *)&addr, sizeof(addr));
           memset(&req, 0, sizeof(req));
           req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));
           req.nh.nlmsg_flags = NLM_F_REPLACE;
           req.nh.nlmsg_type = RTM_NEWLINK;
           req.ifa.ifi_type = 1;
           req.ifa.ifi_family = AF_UNSPEC;
           req.ifa.ifi_index = if_nametoindex("eth1");
           req.ifa.ifi_change = 0xFFFFFFFF;
           rta = (struct rtattr *)(((char *) &req) + NLMSG_ALIGN(req.nh.nlmsg_len));
           rta->rta_type = IFLA_MTU;
           rta->rta_len = RTA_LENGTH(sizeof(unsigned int));
           req.nh.nlmsg_len = NLMSG_ALIGN(req.nh.nlmsg_len) + RTA_LENGTH(sizeof(mtu));
           memcpy(RTA_DATA(rta), &mtu, sizeof(mtu));
           int i =  send(rtnetlink_sk, &req, req.nh.nlmsg_len,0);
           printf("%d\n",if_nametoindex("eth0")); 
           printf("%d\n",i);
           return 0;
}
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2011, 17:08
Ответы с готовыми решениями:

Объединение сетевых интерфейсов
Кто-нить знает как как обьединить две (три, четыре...) сетевые карты??? Help pls! Очень нуно!

Несколько сетевых интерфейсов и multicast
Добрый день, форумчане! Нужна ваша помощь. Есть многопоточное приложение (Perl), генерирует multicast. Есть сервер, на котором...

Получение всех сетевых интерфейсов
Здравствуйте. Недавно начал изучать C# и в целях обучения переношу свои маленькие программы с VB.NET. Столкнулся с такой проблемой: Мне...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.12.2011, 17:08
Помогаю со студенческими работами здесь

Несколько сетевых интерфейсов CentOS
Всем привет. Имеетмя сервер Supermicro с установленным CentOS 6.5. NetworkManager показывает 6 доступных сетевых интерфейсов. Настраиваю...

Конфликт интерфейсов(сетевых карт)
Здравствуйте дорогие форумчане. У меня появилась проблема с приобретением второй сетевой карты для домашнего сервера. сервер под...

Процедура авто-синхронизации сетевых интерфейсов
Всем привет. Начал изучать cisco,читаю официальное руководство по подготовке к сертификации CCENT. После каждой главы есть контрольные...

Запустить VPN клиента на одном из сетевых интерфейсов
Новичок в Linux. Да и в эникействе тоже. Помогите пожалуйста или дайте совет куда копнуть(читать) Дано: сервер c CentOs 7.5 на борту. На...

Новичек. GNS3. Настройка сетевых интерфейсов. Недочеты
изза полома ноги не могу ходить на пары, а задания выполнять нужно - сказали примут в эл.виде, ну ответов не дают, когда на почту пишу....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru