Macos Mac OS终端命令如何区分wlan和以太网地址?

Macos Mac OS终端命令如何区分wlan和以太网地址?,macos,terminal,ip-address,Macos,Terminal,Ip 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

我正在制作一个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-listnetworkserviceorder

  • system\u profiler SPNetworkDataType


  • scutil感谢@artem dorodovskiy和@nbari给我命令行

    多亏了这个,我找到了如何写它


    您可以使用此命令获取地址
    ipconfig getifaddr en0
    。如果调用错误
    en
    此命令将还原
    null
    是,但我仍然不知道是以太网地址还是wlan地址。我找到了打印硬件端口(wi-fi、Thunderbolt Bridge)和设备(en0、en1、bridge1)的命令
    networksetup-listnetworkserviceorder
    。我希望这就是你需要的。嗯。。。那可能会有帮助!谢谢:)从我的终端工作,但不是从Mac应用,获取“启动路径不可访问”,可能是因为它是沙盒。它从我的终端工作,但不是从Mac应用,我也获取“启动路径不可访问”。
    let task=Process.init()
    task.launchPath="/usr/bin/env"
    task.arguments=["networksetup", "-listnetworkserviceorder"]