J'écris un démon fonctionnant sur une plate-forme intégrée qui doit changer l'itinéraire par défaut du périphérique en fonction de l'interface à laquelle il se connecte à un moment donné. Comment puis-je faire cela par programme? Je sais que je peux utiliser le système ("route del default & & route ajouter la passerelle par défaut 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 à pppd qui permet une option de remplacementfaitefaite. Le correctif inclut également du code pour la modification par programmation de la table de routage. Il est inclus dans ce rapport de bug gentoo http://bugs.gentoo.org/227321Comment modifier la table de routage par programmation
Répondre
Découvrez SIOCADDRT/SIOCDELRT ioctl (Stevens' "Unix Network Programming" serait une bonne référence.)
Je recommande d'utiliser simplement cette commande de routage. Thats ce qu'il est là pour, et toute autre chose sera juste un hack.
Je tapé
man route
parce que je sais que parfois je peux obtenir un indice dans le " voir aussi "section pour savoir comment faire la même chose par programme. J'ai vu qu'il y avait une page d'homme à la page 4 pour "route" (route (4) était dans la section voir aussi). Donc essayé
man 4 route
et il semblait prometteur de faire ce que la commande route peut faire par programmation.
Remarque Je viens de remarquer que ceci est uniquement pour 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 ajouter le mot "Linux".
J'ai l'homme route mais pas homme 4 route. Pouvez-vous me dire quelle bibliothèque ou quel fichier d'en-tête j'ai besoin? – MattSmith
Vous avez raison, ma faute. Je vérifiais sur un système BSD. Est-ce que votre route homme a un "voir aussi" qui semble prometteur du tout? –
Il serait pratique comme il semble sur Linux que vous devez utiliser ioctls et analyser la table de routage dans/proc – MattSmith
- 1. Comment puis-je accéder par programme à la table de routage ASP.NET à partir d'un filtre?
- 2. Comment puis-je modifier la vitesse de connexion d'un port par programmation?
- 3. Actualiser la table de routage sous Windows 2003
- 4. Modifier le thème Windows Mobile 6.1 par programmation
- 5. Comment copier une table liée à une table locale dans Ms Access par programmation?
- 6. comment modifier table de clé primaire composite
- 7. Comment puis-je modifier les fonctionnalités de Windows Vista par programmation?
- 8. Comment faire pour modifier par programmation les paramètres du registre de l'économiseur d'écran Windows
- 9. Modifier la hauteur par défaut de PickerControl
- 10. Rendre la colonne liée invisible par programmation
- 11. La sélection par programmation dans WPF ComboBox
- 12. Défilement de QGraphicsView par programmation
- 13. Comment itérer par programmation les lignes de données de grille?
- 14. Vista Série par programmation
- 15. Modifier la résolution de l'écran par programme?
- 16. Expressions de table communes par rapport à la table temporaire
- 17. Génération de WebControls par programmation
- 18. Défilement de UITextView par programmation
- 19. Ajout de sections à la configuration par programmation depuis app.config
- 20. Comment obtenir par programmation la version dans JBoss AS 5.1?
- 21. Comment envoyer demande USSD par la programmation sur iPhone OS
- 22. Comment appeler un événement par programmation?
- 23. Existe-t-il un moyen de modifier par programmation l'attribut readonly de plusieurs zones
- 24. Comment générer des favicon vierges par programmation?
- 25. Comment modifier la hauteur de la cellule de vue de table
- 26. Win API pour modifier la langue d'entrée par programme
- 27. vérification par programmation de la connexion ouverte dans JDBC
- 28. Awaking Mac par programmation
- 29. Comment accéder à un modèle par programmation?
- 30. Obtenir la force du signal porteur de l'iPhone par programmation
Génial, j'obtiens un accès au niveau du shell ou je dois analyser/proc/net/route et utiliser des ioctls! Je suppose que je peux extraire du code d'autres projets. Actuellement en train de regarder comment pppd le fait. – MattSmith