Следующий веб-сервер Python2 будет регистрировать каждый отдельный запрос, включая запрос от localhost (127.0.0.1).
webserver.py
import SimpleHTTPServer, SocketServer, sys
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
port = 80
httpd = SocketServer.TCPServer(("", port), Handler)
sys.stderr = open('/home/user/log.txt', 'w', 1)
httpd.serve_forever()
как пример; curl localhost
(с той же машины) создаст следующий журнал.
10.0.0.1 - - [10/Jan/2019 00:00:00] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [10/Jan/2019 00:00:01] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [10/Jan/2019 00:01:01] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [10/Jan/2019 00:02:02] "GET / HTTP/1.1" 200 -
Мой вопрос: можно ли сделать исключение для локального запроса? Я не хочу регистрировать любые запросы от localhost / 127.0.0.1.
Я думаю, что-то вроде этого, но пока не совсем уверен, как реализовать это в Python2.
webserver_v2_do_not_log_localhost.py
import webserver.py # webserver code above, or simply paste everything in here.
if SourceIPAddress == 127.0.0.1:
print('DO NOT log request from localhost/127.0.0.1')
# Script here
else:
print('Log everything')
# Script here
Любая идея сценариев будет принята с благодарностью. Спасибо
Требуемый вывод при выполнении tail -F log.txt
(только внешний IP, не localhost)
10.0.0.1 - - [10/Jan/2019 00:00:00] "GET / HTTP/1.1" 200 -