Linux 명령줄에서 IP 마지막 번호를 변경하는 방법

Linux 명령줄에서 IP 마지막 번호를 변경하는 방법

변수로 저장된 IP 주소의 마지막 숫자를 변경하려고 합니다.

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

출력은 다음과 같겠지만 192.168.0.1내가 원하는 것은 변수를 다른 마지막 옥텟으로 설정하는 것입니다.192.168.0.2

답변1

nextip()쉘 함수는 마지막 숫자를 변경하여 다음 가능한 IP 주소를 인쇄합니다.

#!/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

산출:

192.168.0.2
192.168.0.1

명령 대체와 함께 이를 사용할 수 있습니다.

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

관련 정보