linux 获取eth0(指定网卡)网卡的IP地址(或MAC地址)

您所在的位置:网站首页 linux系统查看网卡状态命令在哪看的 linux 获取eth0(指定网卡)网卡的IP地址(或MAC地址)

linux 获取eth0(指定网卡)网卡的IP地址(或MAC地址)

2024-07-10 08:11:04| 来源: 网络整理| 查看: 265

引言

使用场景:

我使用的Linux服务器上有多个网卡,有时候就需要在脚本中使用到指定网卡的IP地址或MAC地址,那么这个时候就有两种做法,一是预先读取网卡的IP地址或MAC地址,然后写入到脚本中;另外一种方法就是通过shell命令实时获取指定网卡上的当前IP地址或MAC地址。

一般用法:

使用ifconfig eth0读取网卡信息

手动将IP地址或MAC地址拷贝出来,并填入到脚本中的对应变量中

一句话脚本用法:

[plain]  view plain  copy ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | cut -c 6-  (获取eth0网卡的IP地址)   或   ifconfig eth0 | grep "HWaddr" | awk '{print $5}'  (获取eth0网卡的MAC地址)   上面的脚本分解步骤是: 获取eth0网卡的信息过滤出IP地址的行或MAC地址的行使用awk输出指定字段,对于MAC地址,第5个字段就是MAC;而对于IP地址,还需要对第2个字段截取第6个字符之后的内容 ifconfig命令部分说明

先看一下ifconfig的man手册中的描述:

       Ifconfig  is  used  to  configure  the  kernel-resident network interfaces.          If  no  arguments  are  given,  ifconfig  displays the status of the currently active interfaces.  If a single        interface argument is given, it displays the status of the given interface only; if a single  -a  argument  is        given, it displays the status of all interfaces, even those that are down.  

ifconfig命令的主要作用是进行网卡配置,但是如果没有给定参数或者只是给定了网卡名称这一个参数,则就会显示网卡的状态信息。

因此,在这里,我们通过参数eth0来指定输出该网卡的信息

grep命令部分说明

我们先看一下ifconfig的输出格式:

eth0      Link encap:Ethernet  HWaddr 08:00:27:f6:18:8e             inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0           inet6 addr: fe80::a00:27ff:fef6:188e/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:12575 errors:0 dropped:0 overruns:0 frame:0           TX packets:3429 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000            RX bytes:1931585 (1.9 MB)  TX bytes:465667 (465.6 KB)

其中红色部分中包含了MAC地址信息,蓝色部分包含了IPv4的地址信息。而如果我们指定的网卡不存在时,则输出信息如下:

nfer@nfer:~$ ifconfig eth1 eth1: error fetching interface information: Device not found

因此在上面的命令中,我们分别使用grep "inet addr:"和grep "HWaddr"来过滤出IPv4的地址和MAC地址所在的行,如果是该网卡不存在或者不处于活动状态就过滤不到对应的行。

awk命令和cut命令部分说明

在上面的grep命令过滤出来的MAC地址和IPv4地址所在行的格式如下:

eth0      Link encap:Ethernet  HWaddr 08:00:27:f6:18:8e             inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0

因此,如果是获取MAC地址,只需要使用awk输出第5个字段的值即可:awk '{print $5}';

而如果是要获取IPv4的地址,则需要先输出第2个字段的值:awk '{print $2}',然后再使用cut命令,将"addr:"这5个字符去除,即从第6个字符到结尾的所有字符:cut -c 6-。

其中cut命令的-c参数以及后面的需要显示的字符列表的表述方式的描述如下:

       -c, --characters=LIST               select only these characters

       Use one, and only one of -b, -c or -f.  Each LIST is made up of one range, or many ranges separated by commas.        Selected  input  is written in the same order that it is read, and is written exactly once.  Each range is one of:        N      N'th byte, character or field, counted from 1        N-     from N'th byte, character or field, to end of line        N-M    from N'th to M'th (included) byte, character or field        -M     from first to M'th (included) byte, character or field

我们这里是按照字符操作的,所以使用了-c参数;需要显示的是从第6个字符到结尾的部分,所以使用了N-的模式表示LIST。

总结

本次一句话脚本使用到了以下知识:

ifconfig命令grep命令 awk命令cut命令的-c参数


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭