OSX 终端:如何确定网络连接是 WIFI 还是 LAN?

OSX 终端:如何确定网络连接是 WIFI 还是 LAN?

有没有办法找出系统如何使用 Wifi 或 LAN 连接到互联网?

答案1

您可以先从networksetup实用程序开始列出所有当前可用的服务:

$~ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Thunderbolt Ethernet
Display Ethernet
Display FireWire
Wi-Fi
iPhone USB
Bluetooth PAN
Thunderbolt Bridge

或者您可以列出服务订单:

$~ networksetup -listnetworkserviceorder
An asterisk (*) denotes that a network service is disabled.
(1) Thunderbolt Ethernet
(Hardware Port: Thunderbolt Ethernet, Device: en5)

(2) Display Ethernet
(Hardware Port: Display Ethernet, Device: en6)

(3) Display FireWire
(Hardware Port: Display FireWire, Device: fw0)

(4) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)

(5) iPhone USB
(Hardware Port: iPhone USB, Device: en4)

(6) Bluetooth PAN
(Hardware Port: Bluetooth PAN, Device: en3)

(7) Thunderbolt Bridge
(Hardware Port: Thunderbolt Bridge, Device: bridge0)

然后您可以查询每个服务以查看它是否已连接/配置,例如

$~ networksetup -getinfo Wi-Fi
DHCP Configuration
IP address: 10.0.0.120
Subnet mask: 255.255.255.0
Router: 10.0.0.138
Client ID: 
IPv6: Automatic
IPv6 IP address: none
IPv6 Router: none
Wi-Fi ID: 6c:40:08:a9:62:50

答案2

我喜欢使用:

networksetup -listallhardwareports | grep -C1 $(route get default | grep interface | awk '{print $2}')

它检查当前使用哪个接口作为默认路由,然后查找其硬件信息。

答案3

尝试这个命令:

networksetup -listnetworkserviceorder | grep -C1 $(netstat -nr | grep ^default | grep -o "\s\S\+$")

基本上它包括netstat

$ netstat -nr | grep ^default
default            192.168.46.1       UGSc          399        0     en0

它为您提供了default网关 IP 地址,您可以通过该地址连接到互联网。相关部分是最后一列,它为您提供了网络接口的名称(en0)。

由于 OS X 对 WiFi 和有线以太网使用相同的接口名称(与其他 Unix 不同),因此无法通过其名称来区分。

所以这个额外的命令应该会给你提供它是哪个设备的线索:

$ networksetup -listnetworkserviceorder | grep -C1 en0
(3) Wi-Fi
(Hardware Port: Wi-Fi, Device: en0)

相关内容