Mac OS 终端命令 如何区分wlan 和以太网地址?
Mac OS terminal command How to differentiate wlan from ethernet address?
我正在制作一个 mac os 应用程序。我正在尝试获取以太网和 wlan 地址。我知道这些是 en0
和 en1
地址,但根据设备的不同,en0
可以是以太网或 wlan。有办法知道是哪一个吗?
到目前为止,我正在使用它获取两个地址但不区分它们:
let task=Process.init()
task.launchPath="/sbin/ifconfig"
task.arguments=["en0"] //or en1
let pipe=Pipe()
task.standardOutput=pipe
task.launch()
let data=pipe.fileHandleForReading.readDataToEndOfFile()
guard let stringResult=String(data: data, encoding: String.Encoding.utf8) as NSString? else{wlanFailed();return}
print("en0:", stringResult)
编辑
所以现在我正在尝试 运行 这个命令 networksetup -listnetworkserviceorder
可以在我的终端上运行。
但我不知道如何通过我的 Mac 应用让它发挥作用。例如,用这个:
let task=Process.init()
task.launchPath="/sbin/networksetup"
task.arguments=["-listnetworkserviceorder"]
我得到:
launch path not accessible
这些是一些有助于将接口与硬件名称匹配的命令:
networksetup -listallhardwareports
networksetup -listnetworkserviceorder
system_profiler SPNetworkDataType
scutil <<< "list" | grep -i airport
感谢@artem-dorodovskiy 和@nbari 给我命令行。
多亏了这个SOF answer,我找到了写法。
let task=Process.init()
task.launchPath="/usr/bin/env"
task.arguments=["networksetup", "-listnetworkserviceorder"]
我正在制作一个 mac os 应用程序。我正在尝试获取以太网和 wlan 地址。我知道这些是 en0
和 en1
地址,但根据设备的不同,en0
可以是以太网或 wlan。有办法知道是哪一个吗?
到目前为止,我正在使用它获取两个地址但不区分它们:
let task=Process.init()
task.launchPath="/sbin/ifconfig"
task.arguments=["en0"] //or en1
let pipe=Pipe()
task.standardOutput=pipe
task.launch()
let data=pipe.fileHandleForReading.readDataToEndOfFile()
guard let stringResult=String(data: data, encoding: String.Encoding.utf8) as NSString? else{wlanFailed();return}
print("en0:", stringResult)
编辑
所以现在我正在尝试 运行 这个命令 networksetup -listnetworkserviceorder
可以在我的终端上运行。
但我不知道如何通过我的 Mac 应用让它发挥作用。例如,用这个:
let task=Process.init()
task.launchPath="/sbin/networksetup"
task.arguments=["-listnetworkserviceorder"]
我得到:
launch path not accessible
这些是一些有助于将接口与硬件名称匹配的命令:
networksetup -listallhardwareports
networksetup -listnetworkserviceorder
system_profiler SPNetworkDataType
scutil <<< "list" | grep -i airport
感谢@artem-dorodovskiy 和@nbari 给我命令行。
多亏了这个SOF answer,我找到了写法。
let task=Process.init()
task.launchPath="/usr/bin/env"
task.arguments=["networksetup", "-listnetworkserviceorder"]