Я работаю над инструментом сетевого анализа (академическое исследование), и я хотел бы узнать, какой DNS используется на машине программное обеспечение запущено. Я не сетевой администратор, и мне интересно: как проще всего это выяснить; на разных платформах (то есть на каждом Linux, Mac и Windows), и предпочтительно с использованием чего-то, что доступно в Python?
Обычно кажется, что системы удобно скрывают это от пользователя - я могу установить фиксированный DNS или могу использовать настройки моего роутера через DHCP, или ... Я уверен, что есть и другие системы (LDAP?). Так что простой просмотр файла resolv.conf не всегда может привести к правильному ответу - или да?
Большое спасибо!
Если Вы находитесь на Linux, resolv.conf
действительно сокращает его. Только для DNS, все же. Другие методы разрешения хостов не связаны с DNS. Проверьте свою систему nsswitch.conf
для получения дополнительной информации.
К вашему сведению конфигурация авто-DHCP работает путем автоматического редактирования resolv.conf
.
Что касается OS X, я не использую их достаточно. Я полагаю, что такая вещь хранится в некоторых двоичных базах данных, которые заменяют локальные файлы, но действительно не знают.
Для Windows я верю a netsh interface ip show dns
делает то, что Вы хотите. Windows также использует механизмы определения имен кроме DNS: сетевые широковещательные сообщения являются особенно раздражающими.
Это находится, вероятно, в неправильном разделе, но я собираюсь укусить так или иначе, так как он не был перемещен.
Этот код Python должен добраться, Вы хотите Вас, хотят знать. Я не уверен, какая операционная система это было протестировано на том, таким образом, Вам, возможно, придется настроить его.
http://osdir.com/ml/python.tutor/2002-06/msg00473.html
Linux и OSX будут использовать resolv.conf
Windows сохранит, это находится в реестре.