Как мы можем кэшировать результат gethostbyname?

#c #gethostbyname

#c #gethostbyname

Вопрос:

Мой прокси-сервер тратит много времени на разрешение доменных имен, есть ли способ заставить gethostbyname кэшировать результат?

Комментарии:

1. Слегка касательная, но gethostbyname это устаревшая функция, которую вам не следует использовать. man getaddrinfo .

Ответ №1:

Используйте nscd, имя serivce caching daemon

Комментарии:

1. вы имеете в виду, что после запуска этой службы последующие вызовы gethostbyname будут автоматически кэшироваться?

2. Это именно то, что он делает. Просто взгляните на справочную страницу. Кэширование отрицательных и положительных результатов может быть настроено отдельно, AFAIK

3. Звучит как глупый системный подход к выполнению чего-то, что с таким же успехом можно было бы выполнить с помощью кэширующего / прокси-сервера имен на localhost…

4. Неправильная точка зрения. Сервер имен кэширования — это самый тяжелый подход к выполнению чего-то, что может быть легко выполнено с помощью nscd 🙂 у nscd действительно есть немного другая область применения, поскольку он кэширует getpwnam() и getgrpnam() . Очень эффективно позволяет избежать серьезного повреждения мозга, если вы находитесь в сети с отстающим NIS-сервером.