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

时间:2018-04-26 09:29:51

标签: macos terminal ip-address

我正在制作一个mac os应用程序。我正在尝试获取以太网和wlan地址。我知道这些是en0en1地址,但根据设备,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

2 个答案:

答案 0 :(得分:1)

这些命令有助于将接口与硬件名称匹配:

  • <mat-form-field floatPlaceholder="always" color="accent" class="input-all"> <mat-select [(ngModel)]="checkedOptions" multiple placeholder="{{ par.label }}"> <mat-option *ngFor="let op of options" [value]="op">{{ op }}</mat-option> </mat-select> </mat-form-field>

  • networksetup -listallhardwareports

  • networksetup -listnetworkserviceorder

  • system_profiler SPNetworkDataType

答案 1 :(得分:0)

感谢@ artem-dorodovskiy和@nbari给我命令行。

由于这个SOF answer,我找到了如何写它。

let task=Process.init()
task.launchPath="/usr/bin/env"
task.arguments=["networksetup", "-listnetworkserviceorder"]