基本的思路就是用route
命令列出所有的网卡名,然后再用ifconfig
配合字符串匹配找出对应的ip地址,示例如下:
#!/bin/bash
function ips(){
local nics=$(route -n | grep ^0.0.0.0 | awk '{print $8}')
for nic in $nics
do
local ip=$(ifconfig $nic | grep -E 'inet\s+' | sed -E -e 's/inet\s+\S+://g' | awk '{print $1}')
echo $ip [$nic]
done
}
ips