菜鸟科技网

Mac查询IP命令有哪些?

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

Mac查询IP命令有哪些?-图1
(图片来源网络,侵删)

ifconfig 命令:查看网络接口详细信息

ifconfig 是 macOS 中传统的网络配置工具,用于显示或配置网络接口的参数,通过 ifconfig 可以获取本机所有网络接口(包括有线、无线、虚拟网卡等)的 IP 地址、子网掩码、MAC 地址、接收/发送数据包数量等详细信息。

基本用法

直接在终端输入 ifconfig,系统会列出所有网络接口的信息,输出中每个接口以接口名开头(如 en0en1awdl0 等),后续是该接口的配置状态,以太网接口通常命名为 en0,Wi-Fi 接口可能命名为 en1en2,具体取决于设备硬件。

查看特定接口的 IP 地址

如果只想查看某个接口的 IP 信息,可以在 ifconfig 后加上接口名,查询以太网接口 en0 的 IP 地址:

ifconfig en0

在输出中找到 inet 关键字,其后的 IP 地址即为该接口的 IPv4 地址。

Mac查询IP命令有哪些?-图2
(图片来源网络,侵删)
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 地址与子网掩码按位与的结果)

输出结果仅包含所需信息,适合脚本调用。

Mac查询IP命令有哪些?-图3
(图片来源网络,侵删)

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 addressSubnet maskRouter 等信息。

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 详细信息

实际应用示例

  1. 排查网络连接问题:若无法上网,先用 ifconfig en0 检查接口是否启用(status: active),再查看 inet 是否获取到 IP,若显示 254.x.x,则为 DHCP 分配失败,可尝试 sudo ipconfig set en0 DHCP 重新获取 IP。
  2. 获取本机公网 IP:虽然上述命令获取的是局域网 IP,但可通过 curl ifconfig.mecurl 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:可通过以下步骤判断:

  1. 先用 networksetup -listallnetworkservices 列出所有网络服务,识别 Wi-Fi 和以太网服务的名称(如 "Wi-Fi" 和 "Ethernet")。
  2. 再用 networksetup -getinfo "Wi-Fi"networksetup -getinfo "Ethernet" 分别查询两个服务的状态,若某个服务的 IP address 为有效 IP(非空或非 169.254.x.x),则当前正在使用该网络。
  3. 更直接的方式是使用 route get default 命令,输出中的 interface: 字段会显示当前默认路由使用的接口名(如 en0 对应以太网,en1 对应 Wi-Fi)。
分享:
扫描分享到社交APP
上一篇
下一篇