我正在尝试在Swift中获取系统配置的本地主机名,即运行scutil --get LocalHostName
产生的值。我可以使用系统配置API使用以下代码来执行此操作,但是我想知道是否有不需要创建SCDynamicStore
对象的替代方法。
let store = SCDynamicStoreCreate(nil, "store" as CFString, nil, nil)
let hostname = SCDynamicStoreCopyLocalHostName(store) // "Steves-Macbook-Pro"
我尝试使用Host.current().name
和Host.current().localizedName
,但这些结果均不正确:
print(Host.current().name) // "steves-macbook-pro.local"
print(Host.current().localizedName) // "Steve's Macbook Pro", same result as scutil --get ComputerName
因此,看来Host.current().localizedName
从系统配置中返回了ComputerName
,但是我不知道除了我当前使用的方法之外,还有没有其他选择来获取LocalHostName
。最好使用单线,因为当前方法有更多的边缘情况需要处理,但是我不知道这是否可行。