J'ai un système avec plusieurs NIC et donc plusieurs adresses IP et je dois utiliser un SDK dont l'initialisation nécessite mon adresse locale et l'adresse distante.C++ WinSock choisir l'interface locale pour la connexion
Je souhaite sélectionner automatiquement l'extrémité locale. En ce moment j'énumère toutes les adresses locales (via GetAdaptersAddresses
) en vérifiant la meilleure correspondance (pour être correct je devrais utiliser le masque de sous-réseau). Mais étant donné que ce travail est effectué par la table de routage, y a-t-il une API Windows qui me donne une adresse distante qui me renvoie le bon point de terminaison local?
Pourquoi avez-vous besoin de spécifier une adresse locale spécifique? Le SDK ne choisit-il pas automatiquement une interface locale appropriée lors de la connexion à l'adresse distante? Si vous devez spécifier une adresse, avez-vous essayé d'utiliser l'adresse générique '0.0.0.0' (IPv4) ou' :: '(IPv6)? Cela devrait laisser le système d'exploitation décider du meilleur itinéraire lorsque le SDK essaie de se connecter –