Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 04/20/22 dans toutes les zones

  1. Voila qui devrait répondre à ton besoin, commenté (un peu) en plus! #!/bin/bash #shortsurvip.sh.sh v0.0.2 ##################### ### CONFIGURATION ### ##################### DESTINATAIRE="destinataire@ndd.tld" EMETTEUR="Serveur xxx <expediteur@ndd.tld>" # listes de sites retournant l'IP WAN SITES=("http://checkip.amazonaws.com" "https://api.ipify.org/" "http://ipecho.net/plain" "http://icanhazip.com/" "http://ipinfo.io/ip" "https://wtfismyip.com/text" "http://whatismyip.akamai.com/" "https://ipv4bot.whatismyipaddress.com" "https://www.dsfc.net/ipinfo.php" "http://api.ipaddress.com/myip") # fichier de memo de l'IP MEMOIPFILE="/volume1/script/forum/survip/dsm/ip.txt" LOGFILE="/volume1/script/forum/survip/dsm/ip.log" # Fichier temporaire pour messagerie MSGFILE="/volume1/script/forum/survip/dsm/message.txt" ################# ### FONCTIONS ### ################# memoriser_IP() { echo $new_ip > $MEMOIPFILE } lire_old_ip() { if test -f "$MEMOIPFILE"; then old_ip=`cat $MEMOIPFILE` #lecture ancienne IP si fichier ip.txt existe fi } lire_ip_wan() { nbTest=0 ip_lue_valide=1 # boucle sur les sites pour en trouver un retournant une IP valide until [[ $ip_lue_valide -eq 0 || $nbTest -eq $nbSites ]];do ip_lue=`curl -s -L ${SITES[($[($1 + $nbTest) % $nbSites])]}` if [[ $ip_lue =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then # test si reponse est une IP ip_lue_valide=0 else ((nbTest++)) sleep 1 #utile? fi # repositine pointeur sur le suivant du dernier consulté idSite=($[($1 + $nbTest) % $nbSites + 1]) done } envoi_mail() { # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $new_ip\r\n\r\nCordialement..."` echo -e "to:${DESTINATAIRE}">${MSGFILE}; echo -e "from:${EMETTEUR}">>${MSGFILE}; echo -e "subject:${sujet} ">>${MSGFILE}; echo -e "${body}" >> ${MSGFILE}; ssmtp -v ${DESTINATAIRE} < ${MSGFILE}; rm ${MSGFILE} } inscription_log() { echo "----------------------" >> $LOGFILE echo $(date +"%d/%m/%Y à %H:%M:%S") >> $LOGFILE echo "----------------------" >> $LOGFILE echo ${sujet} >> $LOGFILE echo "Votre ancienne adresse IP était : $old_ip" >> $LOGFILE echo "Votre nouvelle adresse IP est : $new_ip" >> $LOGFILE } ############### ### SCRIPT ### ############### nbSites=${#SITES[@]} idSite=$(( $RANDOM % $nbSites )) lire_old_ip lire_ip_wan $idSite if [ $ip_lue_valide -eq 0 ]; then # si IP lue valide if [ "${old_ip}" != "${ip_lue}" ]; then # si IP changée new_ip=$ip_lue #IP à confirmer ip_lue_valide=1 bcl=0 # recherche autre site fournissant une IP valide until [[ $ip_lue_valide -eq 0 || $bcl -eq $nbSites ]];do ((bcl++)) lire_ip_wan $idSite done if [ "${ip_lue}" == "${new_ip}" ]; then # si nouvelle IP confirmée memoriser_IP sujet="Votre adresse IP publique (IPv4) a changé !" inscription_log envoi_mail fi fi fi exit 0
    1 point
Ce classement est défini par rapport à Bruxelles/GMT+01:00
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.