如何在macOS上获取基于类型的网络计算机图标(smb/afp)



是否可以在macOS下获取网络计算机的图标/ip地址,以便iMac具有iMac图标等?

我正在使用NSNetServiceBrowser来获得可用的服务,但我不知道如何像官方的Finder应用程序那样获得图标。Finder识别iMac、MacBookPro等的图标。谢谢。

我没有一个有效的解决方案,但我看到你的问题还没有得到太多关注,所以也许我可以为你指明正确的方向。

Finder查找服务,它会检查找到的服务是否有与其相关的"设备信息"。这是通过Bonjour完成的,寻找一个_device-info_tcp伪服务。对设备信息的查找可以返回指示gizmo的型号ID的Bonjour TXT记录。如果Finder成功地获取了这些信息,那么它会相应地分配一个图标,否则,它会选择一个通用图标。

图标本身似乎存储在这里:/System/Library/CoreServices/CoreTypes.bundle(至少在我的10.13机器上)。查看该捆绑包上的Info.plist以及其中包含的其他捆绑包,您可以找到设备类型和图标之间的映射。

有一些帖子谈到了如何自定义为某些设备显示的图标:

在Mac OS X Finder中添加自定义网络设备图标?

你能使用Bonjour for Windows来广播与Bluescreen不同的图标吗?

我试着按照这篇文章中的步骤来检查我的网络上一些苹果硬件广告的型号名称,但无法使其工作(无论是使用dig工具还是使用NSNetService)(尽管我承认我对NSNetService并没有很努力,因为我不熟悉它)。

本线程讨论了潜在的问题和解决方案,但是dig工具对我来说不起作用,尽管启用了SMB和AFP over TCP。

所有这些线索都相当古老,尽管相关SO帖子中的评论表明,至少在Sierra身上,这仍然有效。

祝你好运!

最新更新