и доставать из неё информацию. Например, прочитать мак-адрес или, скажем, определить по роут-таблице гейтвей. Какой способ делать это -- православный? Щас у нас вообще с вызовом шелла сделано прошлым программистом через route, grep, awk и прочие извращения. Что само по себе выглядит ужасно и ненадёжно. Есть чуть менее стремный и вроде даже адекватный способ -- завести *fs на один из файликов в /proc или даже /sys. И каких-то особенно больших недостатков я в этом подходе не вижу, ибо, как я понял, структура этих фс гвоздями прибита и от машины к машине меняться ей незачем. Ну и третий способ -- это танцы вокруг сокетов со всякими rtnetlink, ioctl и.. ну я по долгу службы только с ними сейчас столкнулся. Бенефитов по сравнению со вторым способом явных я как-то не вижу. Кроме удовольствия самому разобраться в этой мешанине. Может, вы мне что ещё подскажете?
pyroute2 (он работает через netlink) на python, https://github.com/vishvananda/netlink на go, libnl или самопис напрямую в netlink сокет
Обсуждают сегодня