Как отключить обратный просмотр DNS в веб-сервере Python? - PullRequest
6 голосов
/ 20 июля 2011

У меня есть простой Python CGI-сервер:

import BaseHTTPServer
import CGIHTTPServer
import cgitb; cgitb.enable()  ## This line enables CGI error reporting

server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler
server_address = ("", 8000)
httpd = server(server_address, handler)
httpd.serve_forever()

сервер выполняет обратный просмотр DNS на каждый запрос для целей входа на экран.DNS-сервер недоступен, так как я запускаю сервер в локальной сети.поэтому каждый обратный просмотр DNS приводит к истечению времени ожидания, задерживая ответ сервера.Как я могу отключить поиск DNS?я не нашел ответа в документации по питону.

1 Ответ

12 голосов
/ 20 июля 2011

Вы можете создать подкласс своего собственного класса обработчика, который не будет выполнять поиск DNS.Это следует из http://docs.python.org/library/cgihttpserver.html#module-CGIHTTPServer, в котором говорится, что CGIHTTPRequestHandler совместим с интерфейсом с BaseHTTPRequestHandler и BaseHTTPRequestHandler имеет метод address_string () .

class MyHandler(CGIHTTPServer.CGIHTTPRequestHandler):

    # Disable logging DNS lookups
    def address_string(self):
        return str(self.client_address[0])

handler = MyHandler
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...