Bonjour,
j'aimerai savoir s'il y'a une commande linux qui permet de connaitre son adresse IP Publique (evidemment une commande ).
Je sait que ifconfig te donne l'adresse en LAN, mais pas en WAN.
Merci
Bonjour,
j'aimerai savoir s'il y'a une commande linux qui permet de connaitre son adresse IP Publique (evidemment une commande ).
Je sait que ifconfig te donne l'adresse en LAN, mais pas en WAN.
Merci
ce que je sait c'est que un petit script shell comme ca
pourra donner l'adresse publique utiliser, mais c'est pas du solide, car le jour ou le site www.whatismyip.org ne sera pas accessible, mon prg ne fonctionnera plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #!/bin/bash IP_PUBLIQUE=`wget -q -O - http://www.whatismyip.org` echo "Adresse IP publique : $IP_PUBLIQUE"
De ce fait , je veux trouver une solution solide qui me permet de recuperer mon adresse IP publique ou au moins ma gateway
http://checkip.dyndns.com/ ce serveur là ne risque pas de tomber.![]()
pour plus de securité, peut-etre il vaut mieux tester les deux, de ce fait je peux ptre faire :
je ne suis pas trés fort en script shell, mais peut-etre ca vérifie si il y'a un résultat retourné ou non.#!/bin/bash
IP_1=`wget -q -O - http://www.whatismyip.org`
IP_2=`wget -q -O - http://checkip.dyndns.com/ `
if IP_1 ='' then IP_pub=IP_2
echo "Adresse IP publique : $IP_pub"
Sinon qui a une idée comment comparer en shell cette adresse si elle se trouve dans une plage d'IP bien précise genre :
if a.a.a.a<IP_pub<b.b.b.b then action 1
else action 2
Bon deja IP_2=`wget -q -O - http://checkip.dyndns.com/ ` ne fonctionne pas donc j'ai du changer le script comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #!/bin/bash IP_1=`wget -q -O - http://www.whatismyip.org` if [ "$IP_1" == "" ] then exit fi echo "$IP_1"
Salut,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $ IP_2=$(wget -q -O - http://checkip.dyndns.com | w3m -dump -T text/html) $ echo ${IP_2#*: }
comment ça?ça ne fonctione pasça marche très bien !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 wget -q -O - http://checkip.dyndns.com/ <html><head><title>Current IP Check</title></head><body>Current IP Address: </body></html>
pour ne récupérer que l'adresse, je suggères quand même :autre chose :
Code : Sélectionner tout - Visualiser dans une fenêtre à part w3m -dump http://checkip.dyndns.com | sed 's/.*: //'
pour comparer des adresses ip, il vaut mieux adapter inet_aton en shell :
Code : Sélectionner tout - Visualiser dans une fenêtre à part test -n "$IP_1" || exit
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 inet_aton() { #on peut mettre un test sur le format de l'argument passé à la fonction IFS='.' read -a ip <<<"$1" echo $(( (${ip[0]}*256**3) + (${ip[1]}*256**2) + (${ip[2]}*256) + ${ip[3]} )) } inet_aton 123.456.789.123 2093684091
bon voila j'ai fait quelques changements comme suit :
bon voila pour le moment , je prend mon adresse IP publique, je vérifie, si elle est vide, je quitte le programme.#!/bin/bash
IP_1=`wget -q -O - http://www.whatismyip.org`
test -n "$IP_1" || exit
echo "$IP_1"
Sauf que la j'ai pas trés compris la commande inet-aton(), malgrès les recherches que j'ai fait..
Enfet ce que je veux faire c'est vérifier si mon adresse IP appartient à un sous réseau bien déterminé..
Partager