Как я могу получить имя компьютера на Mac? Я говорю об имени, которое вы можете найти в System Profiler в разделе «Программное обеспечение».Получите имя моего компьютера Mac
ответ
Objective C
Имя, которое я искал это:
[[NSHost currentHost] localizedName];
возвращает "MacBook Джонатана", а не " Jonathans-Macbook ", или" jonathans-macbook.local ", который возвращается только name
.
Свифта 3
Для Swift> = 3 использования.
if let deviceName = Host.current().localizedName {
print(deviceName)
}
NSHost является то, что вы хотите здесь:
NSHost *host;
host = [NSHost currentHost];
[host name];
Будет ли это удобное для пользователя имя (включая такие вещи, как пробелы и апострофы), или тумблерную версию, где места заменены на - и «удалены». –
От связанного документа: 'Может быть либо простое имя хоста, например @" sales ", либо полное доменное имя, например @" sales.anycorp.com ". –
Нет. Я имею в виду, будет ли это« MacBook Джонатана » "или" Джонатанс-Макбук "? –
Вот тот, который не блокирует:
NSString* name = [(NSString*)CSCopyMachineName() autorelease];
Теперь это устарело. – Dev
Использование SystemConfiguration.framework, который необходимо добавить к вашему проекту:
#include <SystemConfiguration/SystemConfiguration.h>
...
// Returns NULL/nil if no computer name set, or error occurred. OSX 10.1+
NSString *computerName = [(NSString *)SCDynamicStoreCopyComputerName(NULL, NULL) autorelease];
// Returns NULL/nil if no local hostname set, or error occurred. OSX 10.2+
NSString *localHostname = [(NSString *)SCDynamicStoreCopyLocalHostName(NULL) autorelease];
Обратите внимание: Apple не рекомендует использовать этот метод при регистрации услуги Bonjour. Дополнительная информация в [Technical Q & A QA1228] (http://developer.apple.com/library/mac/#qa/qa1228/_index.html). – Dev
Просто для пояснения - здесь 'ComputerName' и' LocalHostName' здесь различны. Apple рекомендует против использования LocalHostName, поскольку у нее более строгие ограничения, чем это необходимо для услуг Bonjour, - и API автоматической регистрации Bonjour использует ComputerName плюс некоторые магии дедупликации бесплатно. – RJHunter
Я использую sysctlbyname (» kern.hostname "), который не блокируется. Обратите внимание, что мой вспомогательный метод должен использоваться только для получения строковых атрибутов, а не целых чисел.
#include <sys/sysctl.h>
- (NSString*) systemInfoString:(const char*)attributeName
{
size_t size;
sysctlbyname(attributeName, NULL, &size, NULL, 0); // Get the size of the data.
char* attributeValue = malloc(size);
int err = sysctlbyname(attributeName, attributeValue, &size, NULL, 0);
if (err != 0) {
NSLog(@"sysctlbyname(%s) failed: %s", attributeName, strerror(errno));
free(attributeValue);
return nil;
}
NSString* vs = [NSString stringWithUTF8String:attributeValue];
free(attributeValue);
return vs;
}
- (NSString*) hostName
{
NSArray* components = [[self systemInfoString:"kern.hostname"] componentsSeparatedByString:@"."];
return [components][0];
}
Лучшее решение AFAIK, а не как 'SCDynamicStoreCopyLocalHostName', оно вернет необходимый суффикс« .local ». –
- 1. имя компьютера Mac-терминала искажено
- 2. Получить имя компьютера клиента/MAC
- 3. Получите имя приложения в фокусе (на Mac)
- 4. получить MAC-адрес компьютера
- 5. Получите имя, которое человек вошел в систему с помощью компьютера
- 6. GitLab, отображающий имя компьютера + имя маршрутизатора как имя коммиттера
- 7. получает клиент PC имя компьютера или MAC-адрес
- 8. Как получить имя компьютера Mac OS в nodejs
- 9. Как мне изменить имя моего компьютера OpenSUSE Linux?
- 10. получить имя клиента и имя пользователя компьютера
- 11. Получить имя пользователя компьютера
- 12. Получить имя компьютера
- 13. C# имя владельца компьютера
- 14. имя компьютера в web.config
- 15. Как получить имя компьютера?
- 16. Получить имя компьютера
- 17. Если имя компьютера содержит
- 18. Найти имя клиентского компьютера
- 19. phpmyadmin и скорость моего mac
- 20. Запись видеопрезентации с моего компьютера
- 21. DirectShow является переустановка моего компьютера
- 22. Мониторинг моего основного компьютера XP
- 23. Использование удаляет сбой моего компьютера
- 24. Получение IP-адрес моего компьютера
- 25. Как получить имя компьютера и IP-адрес локального компьютера
- 26. Как импортировать данные с компьютера или mac
- 27. Вызвать функцию с моего компьютера через интернет
- 28. Получить имя компьютера и зарегистрированное имя пользователя
- 29. Имя хоста и имя компьютера в окнах.?
- 30. Получить (непротиворечивое) имя компьютера в MATLAB
Имейте в виду, что [NSHost currentHost] выполняет поиск блокирующей сети. В медленной сети или отключенном компьютере он остановит ваше приложение до тех пор, пока время сети не истечет, если вы не назовете его фоновым потоком. – starkos
Просто передайте пустую строку при регистрации сервиса, и ваше локализованное имя будет автоматически использовано, как рекомендовано apple –
Есть ли способ написать это в Swift? – dylan