Назад | Перейти на главную страницу

Выяснение того, как разрешаются имена хостов

Я работаю над инструментом сетевого анализа (академическое исследование), и мне хотелось бы узнать, какой DNS используется на машине, на которой работает программное обеспечение. Я не сетевой администратор, и мне интересно: как проще всего это выяснить; на разных платформах (то есть на каждом Linux, Mac и Windows) и предпочтительно с использованием чего-то, что доступно в Python?

Обычно кажется, что системы удобно скрывают это от пользователя - я могу установить фиксированный DNS, или я могу использовать настройки моего маршрутизатора через DHCP, или ... Я уверен, что есть и другие системы (LDAP?). Так что простой просмотр файла resolv.conf не всегда может привести к правильному ответу - или да?

Большое спасибо!

Если вы используете Linux, resolv.conf действительно сокращает это. Но только для DNS. Другие методы определения хостов не связаны с DNS. Проверьте свою систему nsswitch.conf Чтобы получить больше информации.

К вашему сведению, автоматическая настройка DHCP работает путем автоматического редактирования resolv.conf.

Что касается OS X, я их недостаточно использую. Я считаю, что такие вещи хранятся в некоторых двоичных базах данных, которые заменяют локальные файлы, но на самом деле я не знаю.

Для Windows я считаю netsh interface ip show dns делает что хотите. Windows также использует механизмы разрешения имен, отличные от DNS: сетевые широковещательные рассылки особенно раздражают.

Вероятно, это не та часть, но я все равно собираюсь укусить, так как она не была перемещена.

Этот код Python должен помочь вам узнать. Я не уверен, на какой операционной системе он был протестирован, поэтому вам, возможно, придется его настроить.

http://osdir.com/ml/python.tutor/2002-06/msg00473.html

Linux и OSX будут использовать resolv.conf

Windows сохранит его в реестре.