Альтернативные способы получить LocalHostName из конфигурации системы в Swift? - PullRequest
0 голосов
/ 04 февраля 2020

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

...