46 votes

Mettre l'adresse IP dans une variable bash. Existe-t-il un meilleur moyen

J'essaie de trouver un moyen court et robuste de mettre mon adresse IP dans une variable bash et je me demandais s'il existait un moyen plus facile de le faire. Voici comment je procède actuellement :

ip=`ifconfig|xargs|awk '{print $7}'|sed -e 's/[a-z]*:/''/'`

0 votes

Comment avez-vous ajouté les backticks ?

4 votes

Si vous mettez 4 espaces avant la ligne, c'est considéré comme du code, et les backticks ne sont pas traités

1voto

Mac Cowell Points 101

Sur mac osx, vous pouvez utiliser ipconfig getifaddr [interface] pour obtenir l'IP local :

$ ipconfig getifaddr en0
192.168.1.30

$ man ipconfig 

DESCRIPTION
     ipconfig is a utility that communicates with the IPConfiguration agent to
     retrieve and set IP configuration parameters.  It should only be used in
     a test and debug context.  Using it for any other purpose is strongly
     discouraged.  Public API's in the SystemConfiguration framework are cur-
     rently the only supported way to access and control the state of IPCon-
     figuration.

     ...

     getifaddr interface-name
                 Prints to standard output the IP address for the first net-
                 work service associated with the given interface.  The output
                 will be empty if no service is currently configured or active
                 on the interface.

0voto

Victor Points 1691

Dans mon cas, j'avais quelques interfaces de plus dans la liste avant eth0 . Par cette commande, vous pouvez obtenir l'adresse IP4 de n'importe quelle interface. Pour cela, vous devez changer eth0 à l'interface dont vous avez besoin.

/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{print $1}'

0voto

Sachin Points 136

Le "eth3" est optionnel (utile pour plusieurs NIC).

ipaddress=`ip addr show eth3 | grep 'inet ' | awk '{ print $2}' | cut -d'/' -f1`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X