看了网络上的获取网络信息的脚本后,发现有些对我来说不好理解,于是做了一些改动,使之更简单:
注:网卡名称由调用者传入
#!/bin/sh
#***********************************************************************
#
# get-network
#
# Usage: get-network ifname
#
#***********************************************************************
#get ifname from argument
case "$#" in
1)
IF="$1"
;;
esac
if [ "$IF" = "" ]; then
echo "Usage: get-network ifname"
exit -1;
fi
#make sure interface $IF is up
interface=$(ifconfig | grep "$IF")
if [ "$interface" = "" ] ; then
echo "interface $IF is down!!"
exit -2;
fi
# get interface $IF ip
addr=$(ifconfig $IF | grep inet | awk '$1 == "inet" {print $2}')
mask=$(ifconfig &IF | grep inet | awk '$1 == "inet" {print $4}')
ip=$(echo "$addr" | cut -d: -f 2)
netmask=$(echo "$mask" | cut -d: -f 2)
echo "ip: $ip"
echo "netmask: $netmask"
很遗憾,这里只获取到ip和掩码信息,至于网关信息和dns信息,有兴趣的朋友可以自己尝试
dns: /etc/resolv.conf
route:route命令或者 /proc/net/route