Advertisement
Guest User

Untitled

a guest
Apr 13th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. #! /bin/bash
  2. # Mainly inspired by DynHost script given by OVH
  3. # New version by zwindler (zwindler.fr/wordpress)
  4. # Newer version stores the return code in the logfile (smuller@s-muller.fr)
  5. #
  6. # Initial version was doing nasty grep/cut on local ppp0 interface
  7. #
  8. # This coulnd't work in a NATed environnement like on ISP boxes
  9. # on private networks.
  10. #
  11. # Also got rid of ipcheck.py thanks to mafiaman42
  12. #
  13. # This script uses curl to get the public IP, and then uses wget
  14. # to update DynHost entry in OVH DNS
  15. #
  16. # Logfile: dynhost.log
  17. #
  18. # CHANGE: "HOST", "LOGIN" and "PASSWORD" to reflect YOUR account variables
  19.  
  20. HOST="sous-domaine"
  21. LOGIN="identifiant"
  22. PASSWORD="mot de passe"
  23. LOG_PATH="chemin pour le stockage des fichiers de journalisation"
  24. LIVEBOX="adresse IP de la Livebox Play"
  25.  
  26. echo ---------------------------------- >> $LOG_PATH/dynhost.log
  27. echo `date` >> $LOG_PATH/dynhost.log
  28. echo 'DynHost' >> $LOG_PATH/dynhost.log
  29.  
  30. TMPFILE=`tempfile`
  31.  
  32. IP=`curl -s -X POST -H "Content-Type: application/json" -d '{"parameters":{}}' http://$LIVEBOX/sysbus/NMC:getWANStatus | sed -e 's/.*"IPAddress":"\(.*\)","Remo.*/\1/g'`
  33. OLDIP=`dig +short @$LIVEBOX $HOST`
  34.  
  35. if [ $IP ]; then
  36. if [ $OLDIP != $IP ]; then
  37. echo -n 'Old IP: ' >> $LOG_PATH/dynhost.log
  38. echo $OLDIP >> $LOG_PATH/dynhost.log
  39. echo -n 'New IP: ' >> $LOG_PATH/dynhost.log
  40. echo $IP >> $LOG_PATH/dynhost.log
  41. echo 'Try to update!' >> $LOG_PATH/dynhost.log
  42. wget -q -O $TMPFILE "http://www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$IP" --user="$LOGIN" --password="$PASSWORD" >> $LOG_PATH/dynhost.log
  43. RESULT=`cat $TMPFILE`
  44. echo "Result: $RESULT" >> $LOG_PATH/dynhost.log
  45. if [[ $RESULT =~ ^(good|nochg).* ]]; then
  46. echo ---------------------------------- >> $LOG_PATH/dynhost-changes.log
  47. echo `date` >> $LOG_PATH/dynhost-changes.log
  48. echo "New IP : $IP" >> $LOG_PATH/dynhost-changes.log
  49. fi
  50. rm $TMPFILE
  51. else
  52. echo "IP $HOST $OLDIP is identical to WAN $IP! No update required." >> $LOG_PATH/dynhost.log
  53. fi
  54. else
  55. echo 'WAN IP not found. Exiting!' >> $LOG_PATH/dynhost.log
  56. fi
  57.  
  58. NB_LINES=`wc -l $LOG_PATH/dynhost.log | cut -d" " -f1`
  59. if [ "$NB_LINES" -gt "200" ]; then
  60. tail -n100 $LOG_PATH/dynhost.log >> $TMPFILE
  61. mv $TMPFILE $LOG_PATH/dynhost.log
  62. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement