文章目录

  • 一、综合说明
  • 二、ComputerName 电脑名称(计算机名)
  • 1、GUI 查找方式
  • 2、终端获取方式
  • 3、终端修改方式
  • 4、Cocoa 代码实现
  • 三、LocalHostName 本地主机名
  • 1、GUI 查找方式
  • 2、命名说明
  • 3、终端获取方式
  • 4、终端修改方式
  • 5、Cocoa 代码实现
  • 四、hostname
  • 1、终端获取方式
  • 2、终端修改方式
  • 五、UserName & FullUserName 当前用户
  • 1、GUI 查找方式
  • 2、终端获取方式
  • 3、Cocoa 代码实现
  • 六、FullUserName
  • 1、Cocoa 代码实现
  • 七、NetBios name
  • 1、plist 中查看
  • 2、GUI 查看方式
  • 3、终端获取方式
  • 4、Cocoa 代码实现
  • 参考



一、综合说明

在 Mac 中,HostName、ComputerName、LocalHostName 信息可以在 文件:/Library/Preferences/SystemConfiguration/preferences.plist 中的 System ▸ Network 中体现。

其中 LocalHostName 会随着 ComputerName 的改变而改变。


二、ComputerName 电脑名称(计算机名)

1、GUI 查找方式

打开 系统偏好设置 —> 进入 共享 Mac 的电脑名称显示在“共享”偏好设置的顶部。


2、终端获取方式

$ scutil --get ComputerName
msde Mac mini

3、终端修改方式

$ sudo scutil --set ComputerName myMacPro

4、Cocoa 代码实现

NSString *computerName = (NSString *)CFBridgingRelease(SCDynamicStoreCopyComputerName(NULL, NULL));
NSString *targetName = @"name123";
    CFStringRef cn = (__bridge CFStringRef) targetName;
    
    // SCPreferencesSetLocalHostName  SCPreferencesSetComputerName
    Boolean ret0 = SCPreferencesSetComputerName(prefs,cn,kCFStringEncodingUTF8);

三、LocalHostName 本地主机名

1、GUI 查找方式

打开 系统偏好设置 —> 进入 共享 电脑的本地主机名显示在 共享 偏好设置顶部的 电脑名称 下面。


2、命名说明

本地网络名称是加有 .local 的电脑名称,而且任何空格都会替换为连字符“-”。例如,如果电脑的名称是 My Computer,则本地网络名称就是 My-Computer.local。本地网络名称不区分大小写,因此 my-computer.local 与 My-Computer.local 相同。


3、终端获取方式

$ scutil --get LocalHostName
msde-Mac-mini

4、终端修改方式

$ sudo scutil --set LocalHostName myMac

exit退出,重新打开terminal终端


5、Cocoa 代码实现

NSString *name = (NSString *)CFBridgingRelease(SCDynamicStoreCopyLocalHostName(NULL));

四、hostname

is the name assigned to the computer as visible from the command line and it is also used by local and remote networks when connecting through SSH and Remote Login.

终端前面显示的名字,或者 SSH 连接、远程登录的时候使用的名字。


1、终端获取方式


方式1

$ hostname
mdmpm.cn.net.ntes

方式2

$ scutil --get HostName
mdmpm.cn.net.ntes

2、终端修改方式

$ scutil --set HostName flame01.domain.com
$ scutil --set HostName `scutil --get ComputerName`

五、UserName & FullUserName 当前用户

1、GUI 查找方式

系统偏好设置 —>用户与群组 —> 当前用户,右键选中账户,点击高级,可以查看 FullUserName 等更多信息。

修改用户名后,这里的用户名也会不同。


2、终端获取方式

$ whoami
ms

$ who
ms    console  Feb 27 20:40 
ms    ttys000  Mar 15 11:32 
ms    ttys002  Mar 20 10:09 
ms    ttys003  Mar 19 17:34 
ms    ttys004  Mar 20 10:33 
ms    ttys005  Mar 20 11:12

3、Cocoa 代码实现

NSUserName();
// ms

六、FullUserName

为了区分,我通过上方面板,修改全名为 ms shu。


1、Cocoa 代码实现

NSFullUserName();
//ms shu

七、NetBios name

1、plist 中查看

在这个局域网中显示的计算机名称或者与其关联的某个资源名称

数据存储在 /Library/Preferences/SystemConfiguration/com.apple.smb.server 文件中。


2、GUI 查看方式

网络与控制面板 —> 选中网络服务 —> 高级 —> WINS 面板即可查看。

这个名字无法修改。


3、终端获取方式

$ defaults read /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName
msdeMac-mini

4、Cocoa 代码实现

通过 systemconfiguration 框架,获取 kSCPropNetSMBNetBIOSName 属性。