Un petit script – 2 : Adresse IP WAN, localisation, speedtest
Ce petit script va faire 3 choses : Afficher votre adresse IP WAN (externe), la localisation géographique de cette adresse, la bande passante en download de cette connexion. Je me sers de ce script quand je me connecte avec OpenVPN à des serveurs VPN étrangers. Je sais ainsi d’un coup d’œil si je ne suis pas sur l’adresse IP de mon domicile, à quel endroit je suis connecté et si je peux télécharger comme un cochon la vitesse de download est intéressante.
Dans un petit script – 1, j’avais expliqué pourquoi j’utilisais dig (plus rapide notamment). Je me base sur le service ipinfo.io (le meilleur à ma connaissance mais qui donne parfois des réponses inexactes pour la ville) pour récupérer les informations géographiques, jq va traiter le JSON en sortie enfin speedtest-cli permet d’avoir la bande passante.
Vous aurez donc besoin de dnsutils (pour dig), jq et speedtest-cli. Le script se lance basiquement avec bash /chemin/vers/le/script.sh
(vous pouvez le rendre exécutable avec chmod +x /chemin/vers/le/script.sh
). A noter que le (gros) défaut de ce script est speedtest-cli dont le test de bande passante est assez long, il faut en général 20 secondes pour que toutes les informations soient affichées.
#!/bin/bash # sudo apt install dnsutils jq && sudo -H pip3 install speedtest-cli myip=$(dig +short myip.opendns.com @resolver1.opendns.com) geoip=$(curl -s ipinfo.io/"$myip" | jq -r '[.country, .city] | join(", ")') echo "$myip ($geoip)" speedtest-cli --no-upload --simple --secure | grep Download exit 0
Vous aurez ce type de sortie :
153.92.40.6 (CA, Toronto)
Download: 21.90 Mbit/s
37.72.175.85 (US, New York)
Download: 9.57 Mbit/s
Si vous voulez Ping, Download et Upload speedtest-cli --simple --secure
, si vous voulez juste Download et Upload speedtest-cli --simple --secure | grep Mbit
Tcho !
Déjà 8 avis pertinents dans Un petit script – 2 : Adresse IP WAN, localisation, speedtest
Les commentaires sont fermés.
#yum install dnsutils jq && sudo -H yum install python2-speedtest-cli
myip=$(dig +short myip.opendns.com .opendns.com)
geoip=$(curl -s ipinfo.io/ »$myip » | jq -r ‘[.country, .city] | join(« , « )’)
echo « $myip ($geoip) »
speedtest-cli –simple –secure | grep Download
exit 0
pour redhat et centos
Du coup ça donne pas sudo yum install dnsutils jq python2-speedtest-cli ?
Tcho !
J’ai tendance à préférer l’utilisation de bash plutôt que le chmod, mais les 2 en même temps n’ont pas d’intérêt ?
chmod +x permet de rendre le script exécutable, la commande bash /chemin/script.sh permet de lancer le script (pas besoin de faire chmod +x avant si tu lances le script de cette manière). Pour ma part je rends tous les scripts exécutables, question d’habitude.
Tcho !
Comme l’a dit Tontof, si tu fais précéder ton script par le nom du shell, pas la peine de rendre exécutable ton script.
Si tu le rends exécutable, il faudra soit donner le chemin complet pour l’exécuter, soit le mettre dans un dossier contenu dans la variable d’environnement ${PATH}, et le lancer comme suit ./ton_script.bash
Sinon, concernant ton script, pourquoi ne pas le simplifier avec juste :
curl -s ipinfo.io | jq -r ‘[.ip, .country, .city] | join(« , « )’
qui renvoie d’un seul coup, l’IP, le lieu, et le pays ?
Bonne journée.
Ma remarque du chmod vise tout le monde (tous les niveaux y compris débutants), je préfère rappeler qu’en général il faut rendre le script exécutable.
Pour le curl oui c’est une excellente remarque, je donne des billes après chacun fait comme il veut. Clairement ça rend le script beaucoup plus simple.
Tcho !
Je préfère le petit « chmod +x », et cela pour une raison simple. Lorsque je fais un « ls -l » je vois tout de suite les scripts opérationnels et ceux qui sont soit en construction ou en « étude » de test… Puisque je ne les ai pas rendu exécutable.
Le fait de rendre exécutable à l’avantage de la clarté!
Bonne nuit!