我正在制作一个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
答案 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"]