[SHELL] Recupérer adresse IP

Recupérer adresse IP [SHELL] - Shell/Batch - Programmation

Marsh Posté le 14-06-2005 à 16:50:48    

Bonjour,
je cherche à recuperer mon ip mais juste mon ip pour un programme shell.
J'opère de la façon suivante:
 
/sbin/ifconfig eth0 | sed -n -e "s/^[[:space:]]*inet addr:\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\).*$/\1/p"
 
Pourtant cela n'affiche pas mon ip :(
 
Quelqu'un a t'il la solution à ce probleme ?
 
Merci d'avance  :jap:

Reply

Marsh Posté le 14-06-2005 à 16:50:48   

Reply

Marsh Posté le 14-06-2005 à 17:05:44    

Essaie ceci, que je trouve plus simple :

/sbin/ifconfig eth0 | grep inet | awk '{ print $2 }'


Message édité par Elmoricq le 14-06-2005 à 17:05:57
Reply

Marsh Posté le 14-06-2005 à 17:15:45    

noprob : a tout les coups, ton OS est en francisé et la sortie de ifconfig est differente (genre adr au lieu de addr) et donc le sed foire

Reply

Marsh Posté le 14-06-2005 à 17:19:19    

Merci Elmoricq de ta solution mais le gagnant de la journée est nico168 !!!  
MERCI noco168 c'était bien ca le probleme !!!! GROS GROS merci !

Reply

Marsh Posté le 14-06-2005 à 17:21:35    

M'en moque, ma solution est indépendante de la langue, et plus lisible que cet énorme sed des familles.
 
Na.  :o

Reply

Marsh Posté le 14-06-2005 à 17:50:30    

Dans les scripts quand on parse la sortie d'un programe, c'est toujours une bonne idee de lancer le programe avec LANG=C (LANG=C /patch/to/program ... | filter).

Reply

Marsh Posté le 14-06-2005 à 18:49:09    

Citation :

Dans les scripts quand on parse la sortie d'un programe, c'est toujours une bonne idee de lancer le programe avec LANG=C (LANG=C /patch/to/program ... | filter).


Tu peux etre plus explicite stp. Je ne comprend pas tes parenthèses et ce qu'il y a dedans.
(Google n'a pas été mon ami)

Reply

Marsh Posté le 14-06-2005 à 19:07:53    

LANG=C /sbin/ifconfig eth0 | ...

Reply

Marsh Posté le 15-06-2005 à 11:26:17    

Elmoricq a écrit :

M'en moque, ma solution est indépendante de la langue, et plus lisible que cet énorme sed des familles.
 
Na.  :o


 
Autant virer aussi le grep alors ...

ifconfig eth0 | awk '$1 == "inet" { split($2,Trunc,":" ) ; print Trunc[2] }'


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Marsh Posté le 15-06-2005 à 11:34:06    

De fait, le grep pouvait se résoudre par un simple test dans awk.  :sweat:  
 
Par contre ta ligne ne fonctionne pas chez moi.
Je ne sais pas comment est le retour d'ifconfig chez toi, mais chez moi ça donne :
 

$ ifconfig lo0
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000  


 
Si je comprends bien, pas de format "standard" de retour pour ifconfig, il faut adapter à sa plateforme.
Du coup, je dois faire :
 

$ ifconfig lo0 | awk '$1 == "inet" { print $2 }'
127.0.0.1



Message édité par Elmoricq le 15-06-2005 à 11:35:17
Reply

Marsh Posté le 15-06-2005 à 11:34:06   

Reply

Marsh Posté le 15-06-2005 à 12:37:55    

Exact ... dans mon cas le champs $2 était addr:127.0.0.1 d'où le split.


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed