Comment modifier la table de routage par programmation

J’écris un démon s’exécutant sur une plate-forme intégrée qui doit modifier l’itinéraire par défaut du périphérique en fonction de l’interface sur laquelle il se connecte à un moment donné. Comment puis-je le faire par programmation? Je sais que je peux utiliser le système (“route del default && route add default gateway blah”); etc. mais y a-t-il un moyen plus direct?

MISE À JOUR: J’ai résolu mon problème particulier en découvrant un correctif pour pppd qui permet une option replaceefaultroute. Le correctif inclut également un code pour modifier par programmation la table de routage. Il est inclus dans ce rapport de bogue gentoo http://bugs.gentoo.org/227321

Consultez les ioctls SIOCADDRT / SIOCDELRT (la programmation réseau Unix de Stevens serait une bonne référence).

j’ai tapé $

man route 

Parce que je sais que parfois je peux avoir un indice dans la section “voir aussi” pour savoir comment faire la même chose par programmation. J’ai vu qu’il y avait une page de manuel à la page 4 pour “route” (la route (4) était dans la section voir aussi). Donc essayé

 man 4 route 

et il semblait prometteur pour faire ce que la commande de route peut faire par programmation.

Remarque Je viens de remarquer que cela concerne uniquement les systèmes BSD. Voici une URL avec la page de manuel http://www.manpagez.com/man/4/route/ . Cela peut ou peut ne pas être utile. Peut-être que vous pouvez google certaines des choses ici et append le mot “linux”.

Je recommanderais simplement d’utiliser cette commande route. Thats ce que c’est là pour ça, et tout le rest ne sera qu’un hack.