在 macOS 系统中,查询 IP 地址是网络配置和故障排查中的常见操作,无论是获取本机 IP、查看网络接口信息,还是诊断网络连接问题,都需要掌握相关的命令行工具,macOS 基于 Unix 内核,提供了多种命令行方式查询 IP 信息,这些命令功能各异,适用于不同场景,下面将详细介绍常用命令的具体用法、输出解析及实际应用场景。

ifconfig 命令:查看网络接口详细信息
ifconfig 是 macOS 中传统的网络配置工具,用于显示或配置网络接口的参数,通过 ifconfig 可以获取本机所有网络接口(包括有线、无线、虚拟网卡等)的 IP 地址、子网掩码、MAC 地址、接收/发送数据包数量等详细信息。
基本用法
直接在终端输入 ifconfig,系统会列出所有网络接口的信息,输出中每个接口以接口名开头(如 en0、en1、awdl0 等),后续是该接口的配置状态,以太网接口通常命名为 en0,Wi-Fi 接口可能命名为 en1 或 en2,具体取决于设备硬件。
查看特定接口的 IP 地址
如果只想查看某个接口的 IP 信息,可以在 ifconfig 后加上接口名,查询以太网接口 en0 的 IP 地址:
ifconfig en0
在输出中找到 inet 关键字,其后的 IP 地址即为该接口的 IPv4 地址。

inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 168.1.100 是本机 IP,netmask 表示子网掩码,broadcast 是广播地址,若接口支持 IPv6,还会显示 inet6 开头的 IPv6 地址信息。
常用参数
up/down:启用或禁用接口,ifconfig en0 up启用en0接口。alias:为接口配置额外的 IP 地址(虚拟 IP)。a:显示所有接口信息,包括已关闭的接口(默认已开启)。
ipconfig 命令:刷新网络配置(注意与 ifconfig 区分)
macOS 中还有一个 ipconfig 命令,但其功能与 ifconfig 完全不同,主要用于刷新网络配置或管理 DNS 缓存,而非查询 IP 地址。
ipconfig getpacket en0:获取 DHCP 协议相关信息(如 DHCP 服务器 IP、租约期等)。ipconfig flushdns:刷新 DNS 缓存(适用于网络域名解析故障排查)。
ifdata 命令:轻量级接口信息查询
ifdata 是一个第三方工具(需通过 Homebrew 安装:brew install ifdata),相比 ifconfig 更简洁,适合快速提取接口的特定信息,如 IP 地址、子网掩码等。
基本用法
ifdata -pa en0 # 显示 en0 接口的 IP 地址 ifdata -pn en0 # 显示 en0 接口的网络号(IP 地址与子网掩码按位与的结果)
输出结果仅包含所需信息,适合脚本调用。

networksetup 命令:管理网络服务配置
networksetup 是 macOS 用于管理网络服务的命令行工具,虽然主要用于配置(如设置代理、DNS、网络服务顺序等),但也可通过特定参数查询网络接口的 IP 地址。
查询当前活动的网络服务
networksetup -listallnetworkservices
输出类似以下内容:
An asterisk (*) denotes that a network service is disabled.
Ethernet
Wi-Fi
Bluetooth PAN查询指定服务的 IP 地址
查询 Wi-Fi 服务的 IP 地址:
networksetup -getinfo Wi-Fi
输出中会显示 IP address、Subnet mask、Router 等信息。
scutil 命令:系统网络配置的底层查询
scutil 是 macOS 中用于管理系统配置的通用工具,通过它可以获取更底层的网络信息,如当前活动的网络服务、DNS 配置、代理设置等。
查询当前活动的网络接口
scutil --dns | grep "interface:" | head -n 1
获取本机 IPv4 地址
ipconfig getifaddr en0 # 直接获取 en0 接口的 IPv4 地址
此命令仅返回 IP 地址本身,不包含其他信息,适合快速提取。
不同命令的适用场景
| 命令 | 主要功能 | 适用场景 |
|---|---|---|
ifconfig | 显示/配置网络接口详细信息 | 查看所有接口的 IP、MAC、状态等 |
ipconfig | 刷新网络配置、管理 DHCP/DNS | 刷新 DNS 缓存、获取 DHCP 信息 |
ifdata | 轻量级提取接口特定信息 | 脚本调用、快速获取 IP/子网掩码 |
networksetup | 管理网络服务(配置为主) | 查询服务配置、设置代理/DNS 等 |
scutil | 底层系统配置查询 | 获取活动网络服务、DNS 详细信息 |
实际应用示例
- 排查网络连接问题:若无法上网,先用
ifconfig en0检查接口是否启用(status: active),再查看inet是否获取到 IP,若显示254.x.x,则为 DHCP 分配失败,可尝试sudo ipconfig set en0 DHCP重新获取 IP。 - 获取本机公网 IP:虽然上述命令获取的是局域网 IP,但可通过
curl ifconfig.me或curl cip.cc获取公网 IP(需联网)。
相关问答 FAQs
Q1:ifconfig 和 ipconfig 有什么区别?为什么 macOS 中两个命令容易混淆?
A1:ifconfig 是传统 Unix 网络配置工具,用于查看/修改网络接口参数(如 IP、MAC 地址);ipconfig 是 macOS 特有命令,主要用于刷新网络配置(如 DHCP、DNS),两者功能完全不同,容易混淆的原因是名称相似,且 Windows 系统中 ipconfig 是查询 IP 的主要命令,而 macOS 中 ifconfig 才承担此功能,用户需注意区分系统环境。
Q2:如何通过命令行判断当前网络连接是使用 Wi-Fi 还是有线以太网?
A2:可通过以下步骤判断:
- 先用
networksetup -listallnetworkservices列出所有网络服务,识别 Wi-Fi 和以太网服务的名称(如 “Wi-Fi” 和 “Ethernet”)。 - 再用
networksetup -getinfo "Wi-Fi"和networksetup -getinfo "Ethernet"分别查询两个服务的状态,若某个服务的IP address为有效 IP(非空或非 169.254.x.x),则当前正在使用该网络。 - 更直接的方式是使用
route get default命令,输出中的interface:字段会显示当前默认路由使用的接口名(如en0对应以太网,en1对应 Wi-Fi)。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/479392.html<





