Get Computer Name on Network?

Discussion in 'Mac Programming' started by ArtOfWarfare, Jun 6, 2012.

  1. ArtOfWarfare macrumors G3


    Nov 26, 2007
    Here's what I have right now...

    using [[NSProcessInfo processInfo] hostName], I get names like:


    If the computer broadcasts a NSNetService, then receives its own service, and then resolves the address, it finds the name as being:

    "macintosh-85.local." instead

    First question: How can I get my program to recognize that the broadcast it's receiving is the same one it sent out?

    Second question: Although these names are fine for behind the scenes purposes, I would like to get a name along the lines of

    "Xxx Xxx's iMac"

    to display to the user.

    These friendly looking names (which appear in the sidebar of Finder under SHARED and DEVICES) appear to be set in System Preferences -> Sharing -> Computer Name. Does anyone know how I can access these names from my app? (A solution that works within the sandbox would be preferred, although if anyone knows how to make it work outside the sandbox, I'll happily take that solution and see what I can do with it...)

    At the same time, the not so friendly looking name appears to come from just under the setting... the second name seems to be called the the "Local Hostname". I can't figure out what the first name (the one returned by ProcessInfo) is called.
  2. bogatyr macrumors 65816

    Mar 13, 2012
  3. ArtOfWarfare thread starter macrumors G3


    Nov 26, 2007
    There were comments there about NSHost blocking the main thread if the network is slow... will

    NSString *computerName = [(NSString *)SCDynamicStoreCopyComputerName(NULL, NULL) autorelease];
    Also block the main thread? Because it seems to give me what I want for a friendly looking name.

Share This Page