有没有办法找出系统如何使用 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)