Aide sur script shell convertir ip hexa
bir0ute
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour à tous,
Je cherche a exécuter un script qui me permettre de traduire un ip hexadécimal en décimal.
Voici mon script :
Et voici ce que j'ai en retour :
Merci de votre aide.
Sab.
Je cherche a exécuter un script qui me permettre de traduire un ip hexadécimal en décimal.
Voici mon script :
#!/bin/sh set -x compteur=`expr 0` IPHEXA="C0 A8 00 01" for i in "$IPHEXA" do compteur=`expr $compteur + 1` test."$compteur"=`echo $((16#$i))` done echo "$test.1"."$test.2"."$test.3"."$test.4"
Et voici ce que j'ai en retour :
+ expr 0
compteur=0
IPHEXA=C0 A8 00 01
+ expr 0 + 1
compteur=1
./script.ip.sh: syntax error at line 1: `(' unexpected
Merci de votre aide.
Sab.
4 réponses
-
hello
et comme ça
IPHEXA="0xC0 0xA8 0x00 0x01"
printf "%d.%d.%d.%d" $IPHEXA
192.168.0.1 -
Salut,
Essayes avec ça:#!/bin/sh set -x compteur=`expr 0` IPHEXA="C0 A8 00 01" for i in $IPHEXA; # pas de double quotes sinon, cela représente un seul élément. do compteur=`expr $compteur + 1` # Une variable ne peut contenir un point dans son nom. donc '.' => '_' eval test_$compteur=`echo $((16#$i))` # pour des nom de variable dynamique, utiliser eval <definition de variable>=<valeur> done echo "$test_1"."$test_2"."$test_3"."$test_4"
A plus :-) -
voici mes tests :
bash-2.03$ eval echo $((16#C0)) 192 bash-2.03$ echo $((16#C0)) 192
for i in $IPHEXA; do compteur=`expr $compteur + 1` eval "echo $((16#"$i"))" done
+ expr 0 compteur=0 IPHEXA=C0 A8 00 01 + expr 0 + 1 compteur=1 + eval echo $((16#C0)) ./script.ip.sh: syntax error at line 1: `(' unexpected
Je ne comprends pas pourquoi ça fonctionne bien en ligne de commande mais pas dans mon script...-
- Bah non toujours le meme probleme :
bash-2.03$ cat script.ip.sh #!/bin/sh set -x compteur=`expr 0` IPHEXA="C0 A8 00 01" for i in $IPHEXA; do compteur=`expr $compteur + 1` eval echo $((16#$i)) done echo "$test_1"."$test_2"."$test_3"."$test_4" bash-2.03$ ./script.ip.sh + expr 0 compteur=0 IPHEXA=C0 A8 00 01 ./script.ip.sh: syntax error at line 12: `(' unexpected
-
-
Salut,
~$ for i in C0 A8 00 01;do echo -e "$(echo "ibase=16;$i" | bc) \c";done;echo 192 168 0 1