What’s the programmatic way to determine the localhost’s Bonjour hostname, i.e.
the one shown in the Sharing pref pane on macOS ("Computers on your local
network can access your computer at: jens.local”)?
I’ve been doing this by calling gethostname() … but suddenly it’s not working,
which is breaking unit tests in my project. That is, gethostname() used to
return “jens.local” as expected, but now returns “jens”.
(I believe the change is due to my network environment; I’ve recently moved and
now have a WiFi router installed by AT&T. The hostname “jens” expands to the
FQDN “jens.attlocal.net <http://jens.attlocal.net/>”, which indeed points to my
IP address. “attlocal.net <http://attlocal.net/>” resolves to the router’s
address. This sounds like the router has its own little dynamic-DNS-like
system, and is using DHCP to tell my computer that it has an assigned hostname,
which gethostname then returns.)
So if gethostname() isn’t reliably going to return the .local hostname, what
will do it? I’m guessing there’s some key in SystemConfiguration, but I have no
idea what it would be.
—Jens
PS: And yes, I do need specifically my “.local” hostname, not just any
hostname, because reasons.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/macnetworkprog/archive%40mail-archive.com
This email sent to [email protected]