Альтернативный и, возможно, лучший способ сделать это - использовать API Core Foundations.
В частности, CFHost
API будет выполнять асинхронное разрешение хоста.
Вы можете попросить экземпляр CFHost
начать разрешение хоста и проверить его достижимость. Процесс произойдет в цикле выполнения, и вы получите обратные вызовы после завершения разрешения.
Это хорошая альтернатива для блокировки gethostname
вызова.