API для IPROUTE2 на любом языке программирования

Есть ли какой-либо API, который можно использовать для управления таблицей маршрутизации Linux? Я хочу написать программу, которая прослушивает сокеты, а затем соответствующим образом изменяет таблицу маршрутизации, просто простой код, но нуждается в API.

One Solution collect form web for “API для IPROUTE2 на любом языке программирования”

Вы можете использовать Netlink . Из вики ,

Netlink был разработан и используется для передачи различной сетевой информации между пространствами ядра Linux и процессами пользовательского пространства. Сетевые утилиты, такие как iproute2, используют Netlink для связи с ядром Linux из пользовательского пространства. Netlink состоит из стандартного сокет-интерфейса для процессов пользовательского пространства и внутреннего API ядра для модулей ядра. Он предназначен для более гибкого преемника ioctl. Первоначально Netlink использовала семейство сокетов AF_NETLINK.

Мои личные предпочтения были бы сценариями bash для таких задач, поскольку я могу указать правила / маршрутизацию iptables в самом скрипте. Если вы используете язык программирования, такой как C, вы можете, вероятно, вызвать system а затем использовать возвращаемое значение в своей программе, чтобы что-то сделать.

Существует один API с именем haxwithaxe, доступный здесь

  • Каковы программы / команды, вызываемые магическим ключом SysRq?
  • Можно ли изменить ядро ​​в системе UNIX / Linux?
  • Как восстановить Debian из LK backports, где конфликт уровня запуска?
  • Трассировка пакета в сетевом стеке Linux
  • Почему kernel ​​Linux поддерживает «umount /»?
  • Имеют ли tmpfs и devtmpfs одну и ту же область памяти?
  • Когда новый системный вызов добавляется в Linux?
  • При каких обстоятельствах, если таковые будут, изменится ли результат чтения / proc / cpuinfo?
  • Компиляция ядра Linux в Eclipse
  • Как запустить ядро ​​в режиме отладки и дождаться KGDB с помощью Virtualbox и Kali Linux?
  • расширение таблицы приоритетов в runqueue в ядре Linux
  • Interesting Posts

    Почему команда «человек» исчезает?

    Попытка установить дату на машине на базе Linux с другой машины

    распечатать файл / etc / shadow в консоли

    Почему аргументы в фигурных скобках в этом случае не расширяются?

    Почему у дистрибутивов нет уникальной версии, которая постоянно предоставляет обновления?

    collectd не может контролировать ntpd 4.2.8 (Ubuntu 16.04)

    Почему возврат игнорируется во время вывода в bash?

    SSH аутентификация на основе ключа: known_hosts vs authorized_keys

    Попытка установить Windows на систему с установленным Ubuntu 12.04

    Как установить Windows 7 после Fedora 16

    Linux почему yum говорит, что обновляется, когда доступны более новые версии?

    Arch Linux: проблема с новичком только в процессе установки (например, ошибка)

    psmouse serio1 неизвестное оборудование

    Подключение к Wi-Fi сети через командную строку

    Пользователи NIS не могут использовать yppasswd на клиентских компьютерах

    Linux и Unix - лучшая ОС в мире.