Linux下显示网络信息的Shell脚本

2017年11月27日

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2842.html http://www.myzhenai.com/thread-18057-1-1.html
这个脚本是deepin论坛上一个网友的问题,在那个脚本的基础上修改的。可能代码要比原文的代码多一些,但获取更准确一些。多网卡获取,可以获取mac地址等信息
原文:https://bbs.deepin.org/forum.php?mod=viewthread&tid=149000

#! /bin/bash
#***************************************************************************************************************************************************#
# Author: RucLinux                                                                                             #  
# Web: http://www.myzhenai.com.cn http://www.myzhenai.com http://www.haikou-china.com http://jiayu.mybabya.com #
#***************************************************************************************************************************************************#
#网卡接口
indx=$(ifconfig -a|grep encap|awk -F " " '{ print $1 }')
OLD_IFD="$IFD"
IFD=" "
arr=${indx}
IFD="$OLD_IFD"
for d in ${arr[@]}
do
na=$(echo ${d:0:3})
if [ ${na} == "eth" ]; then
name=$(ethtool -i ${d}|grep driver:|awk -F "driver:" '{ print $2 }')
txqueuelen=$(ethtool ${d}|grep Speed:|awk -F "Speed:" '{ print $2 }')
mac=$(ifconfig ${d} | sed -n '/HWaddr/ s/^.*HWaddr *//pg')
fi
ma=${arr[@]}:
md=$(echo ${ma}|sed 's/:/ /g')
done

#ip=`ifconfig | awk -F'[ ]+|:' '/inet addr/{if($4!~/^192.168|^172.16|^10|^127|^0/) print $4}'`
#服务器上的多个IP地址
ip=$(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|awk -F ":" '{ print $2 }')

#子网掩码
mask=$(ifconfig -a|grep ${ip}|awk -F "Mask:" '{ print $2 }')
#默认网关
gateway=$(route -n | grep 'UG[ \t]' | awk '{print $2}') 
#dns
dns=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')

echo 网络名称: ${name}
echo 网卡接口:  ${md}
echo ip 地 址: ${ip}
echo 子网掩码: ${mask}
#echo 广播地址: $broadcast
echo 默认网关: ${gateway}
echo 首选 DNS: ${dns}
echo MAC 地址: ${mac}
echo 网卡速率:  ${txqueuelen}


因为我书写代码时候不严谨,导致原来的脚本在Debian发行版里运行会出错,检查过后才知道,原来脚本的文件头是错的。 在Red Hat的发行版里 bash文件的文件头可以使用 #! /bin/sh 但在Debian里 bash已经改变成了 #! /bin/bash。
我写完代码后没有在Debian里调试。然后原来的代码里有一处符号错误, 那个提示的就是符号的错误。还有就是 ifconfig在Debian里必须要root权限执行, 所以这个脚本需得要sudo执行

sudo ./tinte.sh



sicnature ---------------------------------------------------------------------
Your current IP address is: 54.196.182.102
Your IP address location: 美国
Your IP address country and region: 美国 美国
Your current browser is:
Your current system is:
Original content, please indicate the source:
同福客栈论坛 | 海南仙岛海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source http://www.myzhenai.com.cn/post/2842.html

没有评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注