я могу читать / писать таблицу маршрутизации в C без использования команды system ()? - PullRequest
8 голосов
/ 15 июня 2011

У меня есть код, написанный на C. Я хочу получить информацию о коде C, которая хранится в таблице маршрутизации. Возможно ли это?

Ответы [ 3 ]

9 голосов
/ 15 июня 2011

Вы также можете запустить «strace route add ...», чтобы увидеть, как это делает команда route.

В моей системе она использует ioctl с SIOCADDRT.После небольшого поиска получается пример кода .

Как ни странно, лучшая документация, которую я нашел, - это справочные страницы IBM AS400 .

Если выпросто хотите прочитать таблицу маршрутизации, вы можете открыть и прочитать /proc/net/route.(Опять же, strace показывает, что так делает команда route.) Шестнадцатеричные числа - это 32-битные IP-адреса в машинном порядке.Попробуйте cat /proc/net/route.

5 голосов
/ 15 июня 2011

Вы можете открыть сокет netlink и отправить сообщения об обновлении маршрута.Есть статья о том, как это сделать.

1 голос
/ 30 июня 2017

Если вы хотите запросить только таблицу маршрутизации, попробуйте прочитать файл /proc/net/route.Это работает в моей системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...