ip a 命令解析与 IP 地址提取

基础命令:ip a

ip aip addr 的简写,用于查看系统中所有网络接口的详细配置信息。输出内容包含接口名称、MAC 地址、IP 地址、网络状态等。典型输出分为多个网络接口段(如 loeth0eth1),关键字段说明如下:

  • 1: lo::回环接口(用于本地测试),数字 1 是接口编号。
  • 2: eth0: / 3: eth1::物理网卡接口(对应虚拟机的两块网卡)。
  • <LOOPBACK,UP,LOWER_UP>:接口状态(UP 表示已启用)。
  • link/ether 08:00:27:b3:a2:9c:网卡的 MAC 地址。
  • inet 127.0.0.1/8:IPv4 地址(/8 是子网掩码的简写,对应 255.0.0.0)。
过滤含 IP 的行:ip a | grep inet

通过管道符 |ip a 的输出传给 grep inet,筛选出所有包含 inet 关键字的行(IP 地址行会包含 inet)。输出示例如下:

复制代码
inet 127.0.0.1/8 scope host lo
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute eth0
inet 192.168.56.100/24 brd 192.168.56.255 scope global noprefixroute eth1
提取 IP 地址段:ip a | grep inet | awk '{print $2}'

grep 过滤后的行基础上,用 awk 提取每行的第 2 个字段(即 IP 地址/子网掩码段)。输出示例如下:

复制代码
127.0.0.1/8
10.0.2.15/24
192.168.56.100/24
排除回环地址:ip a | grep inet | awk '{print $2}' | grep -v 127.0.0.1

通过 grep -v 127.0.0.1 排除回环地址,仅保留真实网卡 IP。输出示例如下:

复制代码
10.0.2.15/24
192.168.56.100/24
进阶:提取纯 IP 地址

若需去掉子网掩码部分,可使用 awksplit 函数:

bash 复制代码
ip a | grep inet | grep -v 127.0.0.1 | awk '{split($2,ip,"/"); print ip[1]}'

输出示例:

复制代码
10.0.2.15
192.168.56.100
关键原理
  • 管道符 |:将前一个命令的输出作为后一个命令的输入。
  • grep:过滤文本行(-v 参数用于反向匹配)。
  • awk:按字段处理文本(默认以空格/制表符分隔,$2 表示第二个字段)。
  • split 函数:按指定分隔符(如 /)拆分字符串,结果存入数组。
相关推荐
BingoGo3 小时前
PHP clone 之后,为什么改副本会影响原对象?
后端·php
JaguarJack3 小时前
PHP clone 之后,为什么改副本会影响原对象?
后端·php·服务端
砚凝霜3 小时前
【软考信息安全】第一章 网络安全基础、管理与法律法规
安全·web安全·php
Johny_Zhao6 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
落羽的落羽7 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
刚入门的大一新生7 小时前
Linux-进程控制
linux·运维·服务器·c++
上火的金鱼妹7 小时前
K8S基础组件作用和关系整理
linux·运维·服务器·kubernetes
Vcaker7 小时前
Linux学习25-harbor私有仓库部署
linux·运维·学习
刃神太酷啦7 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
编程的一拳超人8 小时前
DeepSeek Harness Linux/macOS/Windows 本地下载、启动与模型配置指南
linux·windows·macos·deepseek