LINUX.ORG.RU

«локальная» часть getaddrinfo


0

1

Есть необходимость сделать чисто локальную часть преобразования строки в адрес — то есть те преобразования которые не ведут к сетевым обращениям.

Скажем, у getaddrinfo есть флаг AI_NUMERICHOST — он делает только преобразование численных адресов. Хотелось бы примерно такого же по отношению к /etc/hosts. То есть нужно разрезолвить имя в адрес всеми возможными способами которые не приводят к сетевому трафику.

Для сетевого резолва используется libevent, но к сожалению он (в используемой версии 1.4) не умеет смотреть в /etc/hosts.

★★★★★

Запусти dnsmasq и ходи либевентом к нему :)

const86 ★★★★★ ()

Блиин, ну неужели такой адово сложный формат у hosts ??? Ну там работы на 5 минут... даже не С

Jetty ★★★★★ ()
Ответ на: комментарий от Jetty

не, парсить hosts самому это говнокод и непортабельно.

gethostent — хороший совет.

Вообще я изначально ожидал, что getaddrinfo может так делать (сперва я думал что AI_ADDRCONFIG заставит смотреть его только в локальной конфигурации, но оказалось что он делает нечто совсем другое).

dilmah ★★★★★ ()
Ответ на: комментарий от Jetty

> портабельно куда ?

ну вообще-то в оффтопике тоже есть файл hosts )

Harald ★★★★★ ()
Ответ на: комментарий от dilmah

> gethostent — хороший совет.

для полноты: dnsmasq — тоже хороший совет

dilmah ★★★★★ ()
Ответ на: комментарий от ananas

> gethostent в случае nis полезет в сеть

Я хотел про это написать, потом подумал, что нынче вероятность встретить NIS достаточно мала.

kemm ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.