Cette question est presque identique à celle posée précédemment. Obtenir l'adresse IP de l'ordinateur local -Question. Cependant, j'ai besoin de trouver l'adresse ou les adresses IP d'un site Web. Machine Linux .
Donc : Comment puis-je - de manière programmatique dans C++ - détecter les adresses IP du serveur linux sur lequel mon application est exécutée. Les serveurs auront au moins deux adresses IP et j'ai besoin d'une adresse spécifique (celle d'un réseau donné (le réseau public)).
Je suis sûr qu'il existe une fonction simple pour le faire - mais où ?
Pour rendre les choses un peu plus claires :
- Le serveur aura évidemment l'adresse "localhost" : 127.0.0.1
- Le serveur aura une adresse IP interne (de gestion) : 172.16.x.x
- Le serveur aura une adresse IP externe (publique) : 80.190.x.x
Je dois trouver l'adresse IP externe pour y lier mon application. Il est évident que je peux aussi me lier à INADDR_ANY (et c'est d'ailleurs ce que je fais pour l'instant). Mais je préférerais détecter l'adresse publique.
3 votes
Pourquoi marquer le popen d'ifconfig ? C'est vraiment la bonne chose à faire. Les bibliothèques changent, mais ifconfig et popen seront toujours là.
3 votes
Non,
ifconfig
,route
etc. sont dépréciés pour leip
commande. Maintenant, vous devriez l'utiliser à la place.0 votes
Ifconfig fonctionne encore, aujourd'hui, sur plus d'architectures que toute autre approche. Changez-la donc pour la commande ip quand/si c'est approprié. popen est toujours la meilleure solution.