Есть клиентская машина, которая отправляет HTTP-запросы на мой IP-адрес.
Я могу прочитать эти запросы, если буду прослушивать порт 5000 с помощью netcat, как показано ниже:
nc -lvp 5000
Запрос, зарегистрированный netcat, выглядит так, как показано ниже:
GET /test/1 HTTP/1.1
Host: <my_ip>:5000
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.13.6
Теперь я запустил сервер Flask на порту 5000, чтобы захватить вышеуказанные HTTP-запросы, используя приведенный ниже код:
#! /usr/bin/python
from flask import Flask
app = Flask(__name__)
@app.before_request
def log_request_info():
app.logger.debug('Headers: %s', request.headers)
if __name__ == '__main__':
app.run(debug=True, port=5000)
Вопросов:
Спасибо.
Спасибо, он работает, когда я слушаю с IP-адреса: 0.0.0.0
Итак, проблема решена?
Да, проблема решена.
Я считаю, что Flask просто слушает
127.0.0.1:5000
вместо того, что вам нужно0.0.0.0:5000
. Вы должны запустить его какapp.run(host = "0.0.0.0")
. И, кстати, вы можете проверить это, открывlocalhost:5000
в своем браузере.