【发布时间】:2011-05-02 12:01:29
【问题描述】:
当我在我的 Mac 上调用 gethostname() 时,有时它返回“george”,有时它返回“George.local”。我可以更改什么以使其始终返回相同的内容? (我不在乎哪个;我只是希望它保持一致。)
背景:我在运行 10.6 的 Mac 上使用 Unison (www.cis.upenn.edu/~bcpierce/unison/index.html)。 Unison 使用多种事物(其中之一是主机名)来命名保存先前结果的文件。当 gethostname() 返回的字符串发生变化时,Unison 找不到之前的文件。这会导致各种不愉快的行为。
最初配置系统时,我将共享控制面板中的名称设置为“乔治”。目前,当我使用 hostname 命令时,它返回“george”。前几天在使用 Unison 的时候,Unison 使用了“George.local”这个名字。在过去的几个月里,我多次看到 Unison 的这种行为。
在这段时间里,我改变了很多东西;我不知道哪个(如果有的话)可能很重要。
1) 我在笔记本电脑上执行此操作。在不同的时间,它连接到不同的路由器,有时根本没有连接。
2) 我可能两次升级了 OS X 版本。对于当前的问题,我确定我确实升级了(从 10.6.6 到 10.6.7)。以前发生的事,我不记得了。
3) 有时我使用 Airport 连接,有时使用电缆。
谁能解释 gethostname() 可能在做什么以及为什么它可能返回不同的字符串?
谢谢,帕特
(2011 年 5 月 1 日更新)问题似乎是 OS X 和我的 AT&T DSL 服务的 2Wire 路由器之间的不良交互。当我在未连接到网络的情况下启动时,主机名返回“George.local”,这是我在“共享”控制面板中设置的。一旦我使用以太网或 AirPort 连接到路由器,主机名现在返回“george”。
在那个特定的路由器中是否有一些配置选项可以控制这个?
我的 Verizon FIOS 路由器或 Verizon DSL 都没有发生这种情况。我不记得那些路由器的品牌,但 2Wire 也不是。
【问题讨论】:
-
看起来您更新的问题现在更像是superuser.com 或apple.stackexchange.com 问题。可能是路由器有一个发送主机名的 DHCP 服务器。