如何在 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()shell 函数通过更改最后一位数字来打印下一个可能的 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)

相关内容