Moyen efficace pour obtenir votre adresse IP dans les scripts shell
Contexte:
Sur les systèmes *nix, on peut obtenir l'adresse IP de la machine dans un shell script de cette façon:
ifconfig | grep 'inet' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{print $1}'
Ou de cette façon:
ifconfig | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's/addr://'
Question:
Y aurait-il un moyen plus direct, plus encore de portable, de façon à obtenir l'adresse IP pour une utilisation dans un script shell?
(mes excuses pour les *BSD et Solaris utilisateurs que la commande ci-dessus peuvent ne pas fonctionner; Je ne pourrais pas tester)
source d'informationauteur Eric Platon
Vous devez vous connecter pour publier un commentaire.
vous pouvez le faire avec une seule commande awk. Pas besoin d'utiliser trop de tuyaux.
vous donner interface directe réduisant de ce fait un grep.
Basé sur cette vous pouvez utiliser la commande suivante
Coup d'oeil ici à la Beej guide de mise en réseau pour obtenir la liste des sockets à l'aide d'un simple programme en C pour imprimer les adresses IP à l'aide
getaddrinfo(...)
appel. Ce simple Programme C peut être utilisé dans le cadre de la shell script il suffit d'imprimer les adresses IP disponibles pourstdout
qui serait plus facile à faire, puis appuyer sur laifconfig
si vous voulez rester portable, comme la sortie deifconfig
peut varier.Espère que cette aide,
Meilleures salutations,
Tom.
Peut-être que cela pourrait aider.