Como alterar os últimos dígitos do IP na linha de comando do Linux

1

Estou tentando alterar os últimos dígitos do endereço IP que armazenei como variável:

ip=$(ifconfig eth0 | grep "inet addr" | awk -F: '{print $2} | awk '{print $1}')

A saída seria 192.168.0.1 , mas o que estou tentando fazer é definir a variável com um último octeto diferente, como 192.168.0.2

    
por Ivan 15.07.2015 / 04:52

1 resposta

0

Esta função shell nextip() imprime o próximo endereço IP possível alterando o último dígito.

#!/bin/sh

nextip() {
        d=${1##*.}
        while true; do
                d=$(( (d+1) & 255 ))
                case $d in
                        0|255) ;;
                        *) break
                esac
        done
        echo ${1%.*}.$d
}

nextip 192.168.0.1
nextip 192.168.0.254

Saída:

192.168.0.2
192.168.0.1

Você pode usá-lo com a substituição do comando:

ip1=$(ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}')
ip2=$(nextip $ip1)
    
por 15.07.2015 / 05:03