| 本文介紹如何是用shell腳本查看網絡接口的ip地址、MAC地址、網絡速率等信息。 |
系統環境
1)檢查可用的網絡接口
使用ip和awk命令,過濾出狀態為UP的網絡接口。
[root@localhost ~]# ip ad|awk '/state UP/ {print $2}'
ens33:
ens38:

2)查看網絡接口的IP地址
使用下面命令過濾出每個接口的ip地址:
[root@localhost ~]# ip -o addr |awk '/inet/{print $2,$4}'
lo 127.0.0.1/8
lo ::1/128
ens33 192.168.43.138/24
ens33 fe80::214e:53b4:43f6:5495/64
ens38 172.25.254.130/24
ens38 fe80::c2ff:9dbc:76be:6dd9/64
或者只查看IPv4地址:
[root@localhost ~]# ip addr | grep inet|grep -v 'inet6'|awk '{print $NF, $2}'
lo 127.0.0.1/8
ens33 192.168.43.138/24
ens38 172.25.254.130/24

3)查看網卡的MAC地址
如果只想查看網絡接口名稱和相應的MAC地址,請使用以下命令。檢查特定的網絡接口的MAC地址:
[root@localhost ~]# ip link show ens33 | awk '/link/{print $2}'
00:0c:29:99:ee:d9
查看所有網絡接口的MAC地址,可以寫一個腳本來實現:
[root@localhost ~]# cat mac-address.sh
#!/bin/bash
ip addr |awk '/state UP/{print $2}' | sed 's/://' | while read output
do
echo $output:
ethtool -P $output
done
查看一下運行結果:
4)查看網絡接口的速度
如果要在Linux上檢查網絡接口端口速度,可以使用ethtool工具。下面是查看特定網絡接口的速度:
[root@localhost ~]# ethtool ens33|grep "Speed:"
Speed: 1000Mb/s
site.qudong.com/2017/0531/414901.shtml
www.pcpop.com/doc/4/4517/4517127.shtml
查看所有接口的網絡速度,可以寫一個腳本來實現:
[root@localhost ~]# cat port-speed.sh
#!/bin/bash
ip addr |awk '/state UP/{print $2}' | sed 's/://' | while read output
do
echo $output:
ethtool $output |grep "Speed:"
done
查看一下運行結果:
5)查看網絡接口信息的Shell腳本
下面這個腳本,我們來實現查看主機名、IPv4、IPv6、MAC地址、網絡接口速度信息:
[root@localhost ~]# cat nic-info.sh
#!/bin/bash
hostname
echo "-------------"
for iname in $(ip addr |awk '/state UP/{print $2}')
do
echo "$iname"
ip addr show $iname | grep inet | awk '{printf "%s:\t%s\n",$1,$2}'
ip link show $iname | grep link | awk '{printf "MAC:\t%s\n",$2}'
ethtool ens33 | awk '/Speed/{printf "%s\t%s\n",$1,$2}'
done

總結
本文介紹了如何是用shell腳本查看網絡接口的ip地址、MAC地址、網絡速率等信息。
