OVH Cloud OVH Cloud

obtenir son "IP interne"

14 réponses
Avatar
pere.noel
bon, j'essaie en ligne de commande d'obtenir mon adresse IP sur le lan,
donc "IP interne".

l'idée est d'utiliser "ifconfig en0" et de choisir la ligne en
broadcast, ce qui donne :

> ifconfig en0 | grep "broadcast" inet 192.168.3.1 netmask 0xffffff00
broadcast 192.168.3.255

maintenant, avec tr, je souhaite supprimer tout ce qui n'est pas chiffre
ou point :

> ifconfig en0 | grep "broadcast" | tr -C -d .0-9

ce qui me retourne que dalle )))

pourtant le man dit : -C Complement the set of characters in
string1, that is ``-C ab'' includes every character except for ``a'' and
``b''.


donc, je retourne ma vest et je fais :

> ifconfig en0 | grep "broadcast" | tr -C -d [:alpha:] qui me dit : zsh: no
matches found: [:alpha:]

mais bon c'est zsh qui répond, pas tr...

je passe donc à :

> ifconfig en0 | grep "broadcast" | tr -d a-zA-Z

qui me donne :

192.168.3.1 000 192.168.3.255

et non pas : 192.168.3.1 000 192.168.3.255

donc il y a qqc devant le premier "192"

c'est ça le but de ce post, supprimer la chaîne devant "192", je suppose
que c'est un tab (en fait j'ai vérifié, avec TextMate, en envoyant le
résultat de la commande dans un fichier texte).

donc je laisse de coter ce pb particulier et enchaîne avec sed :

> ifconfig en0 | grep "broadcast" | tr -d a-zA-Z | sed -e "s/
*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\) .*/\1/"

qui me donne :

192.168.3.1 et non pas : 192.168.3.1

donc il y a qqc devant le premier "192"

que je ne parvient pas à éliminer. (même en utilisant un \t dans le tr :

ifconfig en0 | grep "broadcast" | tr -d \ta-zA-Z | sed -e "s/
*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\) .*/\1/"

comme la ligne commence à faire long, je me dis qu'il doit y avoir une
solution plus simple mais je ne connais pas les outils en ligne de
commande traitant des chaines de caractères et surtout leur domaine
d'utilisation respectif.

en ruby je saurais faire rapidemnt, mais bon faut aussi essayer d'autres
outils...

-- une bévue

10 réponses

1 2
Avatar
patpro ~ Patrick Proniewski
In article <1hbpyao.12xe8cqaw7g0cN%,
(Une bévue) wrote:

bon, j'essaie en ligne de commande d'obtenir mon adresse IP sur le lan,
donc "IP interne".

l'idée est d'utiliser "ifconfig en0" et de choisir la ligne en
broadcast, ce qui donne :



ifconfig en0 | awk '/inet / {print $2}'


patpro

Avatar
pere.noel
patpro ~ Patrick Proniewski wrote:

ifconfig en0 | awk '/inet / {print $2}'


ouais, merci, super ;-)

--
une bévue

Avatar
kurtz le pirate
In article <1hbpyao.12xe8cqaw7g0cN%,
(Une bévue) wrote:

bon, j'essaie en ligne de commande d'obtenir mon adresse IP sur le lan,
donc "IP interne".

...
...
en ruby je saurais faire rapidemnt, mais bon faut aussi essayer d'autres
outils...

-- une bévue


et si tu essayais : ipconfig getifaddr en0

warffffff


--
klp

Avatar
pere.noel
kurtz le pirate wrote:

et si tu essayais : ipconfig getifaddr en0

warffffff


c'est mon coté shadock ;-)

pourquoi faire simple, quand on peut compliqué ???

merci, The Best Solution !!!
--
une bévue

Avatar
patpro ~ Patrick Proniewski
In article <1hbq90p.nzgu0u1cwx619N%,
(Une bévue) wrote:

kurtz le pirate wrote:

et si tu essayais : ipconfig getifaddr en0

warffffff


c'est mon coté shadock ;-)

pourquoi faire simple, quand on peut compliqué ???

merci, The Best Solution !!!


et quand ton interface a plusieurs IP et que tu ne veux pas récupérer la
première, t'es coincé :)

$ ipconfig getifaddr en1
10.0.2.2

$ ifconfig en1 | awk '/inet / {print $2}'
10.0.2.2
10.3.0.1


patpro


Avatar
pere.noel
patpro ~ Patrick Proniewski wrote:


et quand ton interface a plusieurs IP et que tu ne veux pas récupérer la
première, t'es coincé :)


ben non, j'vais qd même pas le laisser coincer par une IP

$ ipconfig getifaddr en1
10.0.2.2

$ ifconfig en1 | awk '/inet / {print $2}'
10.0.2.2
10.3.0.1


j'en ai qu'une (d'IP bien sûr)
--
une bévue

Avatar
kurtz_le_pirate
""Une bévue"" a écrit dans le message
de news: 1hbpyao.12xe8cqaw7g0cN%

bon, j'essaie en ligne de commande d'obtenir mon adresse IP sur le
lan,
donc "IP interne".

[snip]

donc il y a qqc devant le premier "192"

que je ne parvient pas à éliminer. (même en utilisant un t dans le
tr :

ifconfig en0 | grep "broadcast" | tr -d ta-zA-Z | sed -e "s/
*([0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]*) .*/1/"


pour infos :
"pipes" ta commande avec un 'tr -d [:space:]'


--
klp

Avatar
pere.noel
kurtz_le_pirate wrote:

pour infos :
"pipes" ta commande avec un 'tr -d [:space:]'


ben oui, j'ai lu ça, met avec zsh ça me donne :
echo "some spaces in between" | tr -d [:space:]
zsh: no matches found: [:space:]


de quoi il se mèle là zsh ?

pareil avec [[:space:]]
--
une bévue

Avatar
FiLH
(Une bévue) writes:

kurtz_le_pirate wrote:

pour infos :
"pipes" ta commande avec un 'tr -d [:space:]'


ben oui, j'ai lu ça, met avec zsh ça me donne :
echo "some spaces in between" | tr -d [:space:]
zsh: no matches found: [:space:]


de quoi il se mèle là zsh ?


De son boulot. Il interprète les commandes avant de les filer.
Faut mettre entre double quotes (pour garder l'expansion des
variables) ou entre simple quotes (pour éviter l'expansion des
variables).

FiLH


--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/


Avatar
pere.noel
FiLH wrote:

De son boulot.


ok, je vois...
--
une bévue

1 2