Macos Mac OS终端命令如何区分wlan和以太网地址?
我正在制作一个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
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
是,但我仍然不知道是以太网地址还是wlan地址。我找到了打印硬件端口(wi-fi、Thunderbolt Bridge)和设备(en0、en1、bridge1)的命令null
。我希望这就是你需要的。嗯。。。那可能会有帮助!谢谢:)从我的终端工作,但不是从Mac应用,获取“启动路径不可访问”,可能是因为它是沙盒。它从我的终端工作,但不是从Mac应用,我也获取“启动路径不可访问”。networksetup-listnetworkserviceorder
let task=Process.init() task.launchPath="/usr/bin/env" task.arguments=["networksetup", "-listnetworkserviceorder"]