获取Linux系统网卡IP网关mac等信息shell脚本
shell脚本需求
获取主机有线网卡和无线网卡信息
需要获取一下信息
- 网卡名称
- 网卡ip
- 网卡子网掩码
- 网卡网关
- 网卡dns前缀
- 网卡dns
- 网卡mac
步骤
- 获取主机所有网卡名称
- 遍历网卡名称
- 判断网卡是不是无线网卡,如果是则判断是否正常运行,如果是则获取对应信息
- 如果网卡不是无线网卡则是有线网卡,判断是否正常运行,如果是则获取对应信息
- 输出有线无线网卡信息
流程图
实现脚本
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2020-03-21 Kubernetes控制器之StatefulSet
2018-03-21 Zabbix自动发现与主动注册