0
点赞
收藏
分享

微信扫一扫

获取Linux系统网卡IP网关mac等信息shell脚本


shell脚本需求

获取主机有线网卡和无线网卡信息

需要获取一下信息

  • 网卡名称
  • 网卡ip
  • 网卡子网掩码
  • 网卡网关
  • 网卡dns前缀
  • 网卡dns
  • 网卡mac

步骤

  1. 获取主机所有网卡名称
  2. 遍历网卡名称
  3. 判断网卡是不是无线网卡,如果是则判断是否正常运行,如果是则获取对应信息
  4. 如果网卡不是无线网卡则是有线网卡,判断是否正常运行,如果是则获取对应信息
  5. 输出有线无线网卡信息

流程图

获取Linux系统网卡IP网关mac等信息shell脚本_sed

实现脚本

get_ip.sh

脚本如下

#Author:
#File: get_ip.sh
#Project:
#Description: 本脚本实现获取有线无线网卡的网卡名,mac,ip地址等
#How Use:
# 获取所有网卡名称
network_name=`ifconfig |awk '{print $1}'|grep :|awk -F: '{print $1}'`
# 按网卡名遍历
for net_name in ${network_name}
do
#echo ${net_name}
# 如果是本机回环网卡则退出本次循环
if [ ${net_name} = 'lo' ]
then
continue
fi
# 判断是否是无线网卡
iwconfig_num=`iwconfig ${net_name}|grep 'IEEE'|wc -l`
if [ ${iwconfig_num} -ge 1 ]
then
#echo "It is wireless"
# 判断网线网卡是否up状态
running_num=`ifconfig ${net_name}|grep RUNNING|wc -l`
if [ ${running_num} -ge 1 ]
then
# 获取网卡名称,网卡ip,网卡子网掩码,网卡网关,网卡dns前缀,网卡dns,网卡mac
wireless_name=${net_name}
wireless_ip=`ifconfig ${wireless_name}|grep 'inet'|awk '{print $2}'|sed -n '1p'`
wireless_netmask=`ifconfig ${wireless_name}|grep inet|awk '{print $4}'|sed -n '1p'`
wireless_gateway=`ip route show|grep ${net_name}|grep default|awk '{print $3}'`
wireless_dns_suffix=''
wireless_dns=`cat /etc/resolv.conf |grep nameserver|awk '{print $2}'`
wireless_mac=`ifconfig ${wireless_name}|grep ether|awk '{print $2}'`
echo "无线网卡信息" ${wireless_name} ${wireless_ip} ${wireless_netmask} ${wireless_gateway} ${wireless_dns_suffix} ${wireless_dns} ${wireless_mac}
else
echo "${net_name} is down"
fi
# 如果网卡不是无线网卡则是有线网卡
else
#echo "It is wired"
running_num=`ifconfig ${net_name}|grep RUNNING|wc -l`
if [ ${running_num} -ge 1 ]
then
wired_name=${net_name}
wired_ip=`ifconfig ${wired_name}|grep 'inet'|awk '{print $2}'|sed -n '1p'`
wired_netmask=`ifconfig ${wired_name}|grep inet|awk '{print $4}'|sed -n '1p'`
wired_gateway=`route -n|awk '{print $2}'|sed -n '3p'`
wired_dns_suffix=''
wired_dns=`cat /etc/resolv.conf |grep nameserver|awk '{print $2}'`
wired_mac=`ifconfig ${wired_name}|grep ether|awk '{print $2}'`
echo "有线网卡信息" ${wired_name} ${wired_ip} ${wired_netmask} ${wired_gateway} ${wired_dns_suffix} ${wired_dns} ${wired_mac}
else
echo "${net_name} is down"
fi
fi

done

运行结果如下

正确获取网卡对应信息

ky@ky-ZhaoYangN4620Z-A123:~/桌面$ sh get_ip.sh
enp5s0 no wireless extensions.

有线网卡信息 enp5s0 192.168.3.22 255.255.255.0 192.168.3.1 127.0.0.53 1c:83:41:2c:99:f8
无线网卡信息 wlp6s0 192.168.100.26 255.255.255.0 192.168.100.1 127.0.0.53 94:08:53:bd:6c:f3



举报

相关推荐

0 条评论