Я пытаюсь получить локальное имя конфигурации системы в Swift, т. Е. Значение, полученное при запуске scutil --get LocalHostName
. Я могу сделать это с помощью следующего кода с помощью API System Configuration, но мне было интересно, есть ли альтернативы, которые не требуют создания 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
помимо метода, который я сейчас использую. Было бы хорошо иметь однострочник, так как текущий метод имеет больше краевых случаев для обработки, но я не знаю, возможно ли это или нет.