Как сделать DNS-запросы в Linux (с python), минуя nsswitch.conf и без дополнительных пакетов

1

Я хотел бы сделать DNS-запросы, чтобы проверить, являются ли некоторые записи в файле /etc/hosts устаревшими (теперь работает DNS) или конфликтуют с ответами DNS. Сначала nsswitch.conf настроен на поиск /etc/hosts. gethostbyname() или getaddrinfo() не будут работать, потому что оба они используют meesasims (nsswitch.conf).

Я знаю о пакете pythonDNS. К сожалению, довольно сложно установить дополнительные пакеты в системах. Кроме того, доступная версия python довольно старая (python23).

Единственное возможное решение, которое я вижу до сих пор, заключается в анализе вывода nslookup или dig. Но мне действительно не нравится эта идея из-за сложности (CNAME, несколько записей,...).

Я ищу одно решение класса/функции, чтобы сделать поиск DNS-записей.

  • 0
    Попробуйте dnspython.org
Теги:

4 ответа

1

Очевидные опции:

  • PyDNS
  • dnspython
  • Вызовите res_query через API libresolv C (например, используя ctypes)
1

Twisted Names содержит DNS-клиент.

0

Невозможно ли установить дополнительное программное обеспечение из-за технических ограничений или из-за политики?

Если это не политика, вы могли бы где-нибудь с virtualenv

0

Мне всегда нравилось evdns

http://linux.die.net/man/3/evdns

Кажется, существует связка python, называемая pyevent

http://code.google.com/p/pyevent/source/browse/trunk/evdns.pxi?r=44

  • 0
    Привет Ангелом, спасибо за твой ответ. К сожалению, никакое дополнительное программное обеспечение не возможно в системах. Сток RHEL4.8

Ещё вопросы

Сообщество Overcoder
Наверх
Меню