linux/shell:列出所有ip地址及对应的物理网卡

本文介绍了一个使用Bash脚本通过route命令和ifconfig命令组合来获取系统中所有网卡及其对应IP地址的方法。该脚本首先列出所有网卡名称,然后通过字符串匹配找出每个网卡的IP地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本的思路就是用route命令列出所有的网卡名,然后再用ifconfig配合字符串匹配找出对应的ip地址,示例如下:

#!/bin/bash
function ips(){
	local nics=$(route -n | grep ^0.0.0.0 | awk '{print $8}') 
	for nic in $nics
	do
	    local ip=$(ifconfig $nic | grep -E 'inet\s+' | sed -E -e 's/inet\s+\S+://g' | awk '{print $1}')
	    echo $ip [$nic]
	done
}

ips
### 如何在CentOS中查看网卡信息 在网络配置和管理过程中,了解如何获取网络接口的信息至关重要。对于CentOS而言,有多种方法可以用来检查网卡详情。 #### 使用`ifconfig`命令 尽管`ifconfig`已经被认为是过时的工具,在许多Linux发行版上仍然可用。通过执行如下命令来显示所有网络接口的状态: ```bash ifconfig -a ``` 这条指令会列出所有的网络适配器及其属性,包括IP地址、广播地址以及硬件MAC地址等[^1]。 #### 利用`ip`命令 现代推荐的方式是采用`ip`命令来进行更全面的操作。要获得详细的网络接口列表连同其设置参数,可输入以下命令: ```bash ip addr show ``` 此命令提供了关于活动网络设备更为详尽的数据,并且支持IPv4与IPv6环境下的查询需求[^2]。 #### 查看特定文件中的静态信息 另一种方式是从系统的配置文件读取固定不变的部分数据。例如,可以通过阅读位于`/sys/class/net/<interface>/address`路径下保存着对应物理地址的内容;而有关速度和其他特性则记录于`ethtool`所对应输出之中。 为了简化操作流程并一次性取得更多有用情报,可以直接运行下面这个组合式的shell脚本片段: ```bash for dev in $(ls /sys/class/net); do echo "Device: $dev"; ethtool "$dev"; done ``` 上述代码遍历每一个存在的网络端口名称,并调用`ethtool`程序打印出它们各自的统计资料和技术规格说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10km

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值