Без программирования на C: команда
$ ip monitor
производит вывод на свой стандартный вывод всякий раз, когда изменяется какая-либо конфигурация в подсистеме IP.Команда
# ip addr add 10.10.10.10/24 dev em1
производит следующий вывод
2: em1 inet 10.10.10.10/24 scope global em1
local 10.10.10.10 dev em1 table local proto kernel scope host src 0.10.10.10
10.10.10.0/24 dev em1 proto kernel scope link src 10.10.10.10
broadcast 10.10.10.0 dev em1 table local proto kernel scope link src 10.10.10.10
broadcast 10.10.10.255 dev em1 table local proto kernel scope link src 10.10.10.10
, удаление адресов 10.10.10.10 с помощью команды
# ip addr del 10.10.10.10/24 dev em1
производит следующий вывод
Deleted 2: em1 inet 10.10.10.10/24 scope global em1
Deleted 10.10.10.0/24 dev em1 proto kernel scope link src 10.10.10.10
Deleted broadcast 10.10.10.255 dev em1 table local proto kernel scope link src 10.10.10.10
Deleted broadcast 10.10.10.0 dev em1 table local proto kernel scope link src 10.10.10.10
Deleted local 10.10.10.10 dev em1 table local proto kernel scope host src 10.10.10.10
вы можете использовать либо оболочку и некоторые awk или perl для обработки этих сообщений, либо вы можете использовать функции библиотеки popen () и friends C и обработать выход в C.
Использование программирования на Cвы можете подключиться к ядру через NETLINK.Это довольно сложно и не очень хорошо задокументировано.См. статью в Википедии , чтобы узнать, как начать работу с интерфейсом Netlink.