如何使用bash查找您的IP地址

时间:2015-12-02 19:08:48

标签: linux bash centos ip

我有一台有多个ip地址的服务器。我想在bash中找出他们的确切值。我正在寻找类似的东西:

a=returnIpAddressStartingWith 10.60.12
b=returnIpAddressStartingWith 10.60.13

以便返回以下内容:

> echo $a
10.60.12.23

在linux上有没有合理的方法呢?

2 个答案:

答案 0 :(得分:2)

您可以使用这样的功能进行搜索:

findip() {
   ip -4 addr | awk -v ip="$1" -F '[/[:blank:]]+' '$2 == "inet" && index($3, ip){print $3}'
}

通过以下方式找到IP:

a=$(findip '10.60.12')

答案 1 :(得分:0)

使用grep / awk / cut将其解析出'ip addr show'列表,然后可选地,如果您需要将其作为数组访问,请将列表复制到Bash数组中:

# Create a string that is the list of all variables
IPSTR=`ip addr show | fgrep 'inet ' | fgrep -v '127.0.0.1' | awk '{ print $2 }' | cut -d '/' -f 1`
I=0
for IP in $IPSTR ; do
    IPARY[$I]=$IP
    I=$(($I+1))
done
echo "First IP in array is ${IPARY[0]}"
echo "Number of IP addresses in array is ${#IPARY[*]}"