diff --git a/increment_ip.sh b/increment_ip.sh new file mode 100644 index 0000000..d71d96a --- /dev/null +++ b/increment_ip.sh @@ -0,0 +1,64 @@ +#!/bin/bash +## author : Dryusdan +## date : 30/09/2019 +## description : An incremental IP +## usage : ./increment_ip.sh + +## Bash strict mode #################################### +set -o errexit # abort on nonzero exitstatus +set -o nounset # abort on unbound variable +set -o pipefail # don't hide errors within pipes + +## Bash color ########################################## +# Set colors +RED='\033[0;31m' +GREEN='\033[00;32m' +YELLOW='\033[00;33m' +BLUE='\033[00;34m' +PURPLE='\033[00;35m' +CYAN='\033[00;36m' +LIGHTGRAY='\033[00;37m' +LRED='\033[01;31m' +LGREEN='\033[01;32m' +LYELLOW='\033[01;33m' +LBLUE='\033[01;34m' +LPURPLE='\033[01;35m' +LCYAN='\033[01;36m' +WHITE='\033[01;37m' +NC='\033[0m' # No Color + +## Logs ################################################ +readonly SCRIPTNAME="$(basename "$0")" +info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } +######################################################## + +info "start ${SCRIPTNAME}" + +## Define variables #################################### +LAST_DIGIT=$(cat last_digit.txt) +LAST_DIGIT_HEXA=$((16#${LAST_DIGIT})) +RANGE="2a01:4f8:161:2269:8000:c01d:c01a:" +######################################################## + +## Starting script ##################################### +info "generating new IP" +for i in $(seq ${LAST_DIGIT_HEXA} $((16#ffff))); +do + NEW_IP=$(printf "${RANGE}%.4x\n" $i) + LAST_DIGIT_NEW_IP=$(printf '%x\n' $i) + break; +done + +info "Setting new IP" +ip -6 addr add ${NEW_IP}/65 dev eth0 + +info "Remove last IP" +ip -6 addr del ${RANGE}:${LAST_DIGIT}/65 dev eth0 + +echo ${LAST_DIGIT_NEW_IP} > last_digit.txt + +info "Ending script" +####################################################### diff --git a/last_digit.txt b/last_digit.txt new file mode 100644 index 0000000..fda0cf4 --- /dev/null +++ b/last_digit.txt @@ -0,0 +1 @@ +cb06