Forum Programmation.shell Script pour obtenir adresse IP

Posté par  .
Étiquettes : aucune
0
14
fév.
2008
Salut à tous!

je voudrais savoir comment faire pour obtenir l'adresse IP de ma machine
(uniquement la chaine 'xxx.xxx.xxx.xxx') dans un shell.

j'ai essayé:
cisco~ $ ifconfig | grep 'eth0' -1 | grep 'inet adr:'

j'obtiens
inet adr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Masque:255.255.255.0

Merci de m'aider a obtenir uniquement l'adresse qui suit "inet adr:".
  • # un sed à l'ancienne

    Posté par  . Évalué à 0.

    ifconfig | grep 'eth0' -1 | sed -n 's/.*inet adr:\([^.]*.[^.]*.[^.]*.[^ ]\).*$/\1/p'
    • [^] # Re: un sed à l'ancienne

      Posté par  . Évalué à 0.

      Je me réponds à moi-même...

      ifconfig eth0
      est plus propre que
      ifconfig | grep 'eth0' -1

      donc
      ifconfig eth0 | sed -n 's/.*inet adr:\([^.]*.[^.]*.[^.]*.[^ ]\).*$/\1/p'

      c'est mieux.
  • # ifconfig eth0|awk '($0~"inet adr"){gsub("adr:","");print $2}'

    Posté par  . Évalué à 1.

    ...ou bien un awk comme un baron ...

    [On imprime le deuxième champ du résultat de la subsitution de "adr:" par "" à la ligne de l'output de ifconfig eth0 qui contient "inet adr"]
  • # Je n'aime ni sed ni awk

    Posté par  (site web personnel) . Évalué à 1.

    ifconfig eth0 | grep 'inet addr' | cut -f2 -d':' | cut -f1 -d' '
    • [^] # Re: Je n'aime ni sed ni awk

      Posté par  . Évalué à 1.

      Et pourtant pour une utilisation comme celle-ci c'est plus adapté.
      Alors que sed se suffit à lui-même, ta commande fait appel à 3 commandes.
      Résultat (sur ma machine) :

      time ifconfig eth0 | grep 'inet adr' | cut -f2 -d':' | cut -f1 -d' '
      real 0m0.040s


      time ifconfig eth0 | sed -n 's/.*inet adr:\([^.]*.[^.]*.[^.]*.[^ ]*\).*$/\1/p'
      real 0m0.028s


      Ça fait quand même beaucoup en pourcentage...

      PS : attention, dans le grep, c'est 'inet adr' et pas 'inet addr'
      • [^] # Re: Je n'aime ni sed ni awk

        Posté par  (site web personnel) . Évalué à 1.

        Dans l'absolu tu as raison.

        Pour le coup du adr/addr, il fait croire que ifconfig est localise: tout est anglais chez moi, et c'est bien 'addr' dans ce cas. Ce qui me fait dire que suivant ce que veut faire l'auteur du forum avec son script, il va falloir faire gaffe.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.