Краткий ответ: « запрашивает систему », которая, в свою очередь, знает, как выполнять поиск DNS и какие серверы использовать.
getaddrinfo()
задокументировано на справочной странице getaddrinfo(3)
, что означает, что это функция библиотеки C. Это также функция POSIX , поэтому канонического «источника» не существует; каждая стандартная библиотека C операционной системы, которая соответствует POSIX, будет реализовывать свою собственную версию. В любом случае, источник только этой функции, вероятно, не слишком понятен, поскольку он будет просто вызывать другие функции и API-интерфейсы ОС, и вам придется довольно подробно изучить механизм DNS. Вам лучше прочитать документацию по самому протоколу DNS, если вы заинтересованы в том, как это работает.