Shell récupérer ip et hostname script
Maillon
Messages postés
157
Statut
Membre
-
deadman -
deadman -
Bonjour,
je fais actuellement un script en shell et j'aurais besoin de récupérer l'adresse ip de la machine pour pouvoir l'utiliser ensuite. Le problème est que cette adresse ip est dynamic (dhcp).
Par ailleurs j'aimerai utiliser le nom de la machine dans mon script mais quand j'utilise un $HOSTNAME et bien rien ne se passe. Par contre quand je l'utilise dans un terminal "echo $HOSTNAME" là ça marche bien.
Avez-vous des idées ?
Merci.
Cordialement,
je fais actuellement un script en shell et j'aurais besoin de récupérer l'adresse ip de la machine pour pouvoir l'utiliser ensuite. Le problème est que cette adresse ip est dynamic (dhcp).
Par ailleurs j'aimerai utiliser le nom de la machine dans mon script mais quand j'utilise un $HOSTNAME et bien rien ne se passe. Par contre quand je l'utilise dans un terminal "echo $HOSTNAME" là ça marche bien.
Avez-vous des idées ?
Merci.
Cordialement,
A voir également:
- Shell récupérer ip et hostname script
- Ethernet n'a pas de configuration ip valide - Guide
- Classic shell - Télécharger - Personnalisation
- Recuperer message whatsapp supprimé - Guide
- Comment connaître son adresse ip - Guide
- Script vidéo youtube - Guide
7 réponses
echo 'ifconfig eth0 | grep "inet adr" | sed 's/.*adr:\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/''Il y avait une erreur de syntaxe , voila , maintenant ca marche !
Essaye :
ADRESS=`ifconfig eth0 | grep "inet adr" | sed 's/.*adr:\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]\).*/\1/'`
En fait j'ai trouver il faut faire genre pour le hostname
HOST=`hostname`
par contre pour l'ip je cherche encore...
HOST=`hostname`
par contre pour l'ip je cherche encore...
pour la machine, tu peux aussi utiliser "uname" (regarde le man pour savoir comment)
pour avoir l'IP, c'est plus compliquer, je ne connait de solution qu'en traitant une chaine de caractère.
Si tu utilise perl comme langage de script( ce que tu ne nous a pas préciser) ça ne devrais pas être trop compliquer.
Donc, pour récupérer l'IP, j'utiliserai soit ifconfig soit ping localhost ou ping $(uname ...).
Bonne chance
pour avoir l'IP, c'est plus compliquer, je ne connait de solution qu'en traitant une chaine de caractère.
Si tu utilise perl comme langage de script( ce que tu ne nous a pas préciser) ça ne devrais pas être trop compliquer.
Donc, pour récupérer l'IP, j'utiliserai soit ifconfig soit ping localhost ou ping $(uname ...).
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci Char :)
En fait ce que je veux faire en claire c'est ça :
host=$(which hostname)
H="$host -f"
sed -i "s/192.168.1.1/$ip/g"
sed -i "s/nom-machine/$nouveau-nom/g"
Où $ip est l'ip de la machine sur laquelle le script est exécuté.
Où $nouveau-nom est le nom de la machine sur laquelle le script est exécuté.
Il faut que je récupère le nom de la machine (soit par la commande hostname ou uname) et que je mette le résultat dans la commande sed.
J'espère avoir été clair. :-)
Merci.
Cordialement,
En fait ce que je veux faire en claire c'est ça :
host=$(which hostname)
H="$host -f"
sed -i "s/192.168.1.1/$ip/g"
sed -i "s/nom-machine/$nouveau-nom/g"
Où $ip est l'ip de la machine sur laquelle le script est exécuté.
Où $nouveau-nom est le nom de la machine sur laquelle le script est exécuté.
Il faut que je récupère le nom de la machine (soit par la commande hostname ou uname) et que je mette le résultat dans la commande sed.
J'espère avoir été clair. :-)
Merci.
Cordialement,
me manque toujours ton shell !
host=$(uname -n)
pour l'adresse IP, je n'arrive pas à l'avoir simplement décidement... Je pense qu'il faut oublié le ping et se concenter sur ifconfig. http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man8/ifconfig.8.html
Par contre, sed -i n'est pas documenter dans la page de manuel.
host=$(uname -n)
pour l'adresse IP, je n'arrive pas à l'avoir simplement décidement... Je pense qu'il faut oublié le ping et se concenter sur ifconfig. http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man8/ifconfig.8.html
Par contre, sed -i n'est pas documenter dans la page de manuel.
grep -o "inet adr:[0-9.]*" < <(ifconfig eth0) | awk 'BEGIN{FS=":"}{print $2}'ou encore :
ou encore :