Можно ли получить доступ к API-интерфейсу REST, созданному на основе Flask и Python, из внешней сети? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь использовать REST API, созданный с использованием Flask и Python, для создания сервера из моего Raspberry Pi и доступа к нему с моего iPhone.У меня очень простой вопрос: могу ли я получить доступ к серверу из сети, отличной от той, в которой он создан?Так, например, если сервер создан на моем домашнем Wi-Fi, могу ли я получить к нему доступ с моего рабочего места Wi-Fi?Если да, то как?

В настоящее время я могу получить доступ к серверу с любого устройства, подключенного к той же сети.Я видел много похожих сообщений в Интернете о подобных проблемах, но я не могу найти прямой ответ на мой вопрос выше.

Вот мой код:

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/test")
def hello():
    return jsonify({"about":"Hello World"})

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=2000,debug=True)

Если я захожу в Safari на моемiPhone при подключении к мобильным данным и введите «http://RaspberryPiIP:2000/test",», тогда страница не будет загружаться и «займет слишком много времени, чтобы ответить». Однако, если я сделаю то же самое на своем домашнем Wi-Fi, что также является Raspberry PiСтраница будет загружена, как и ожидалось.

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Чтобы получить доступ к чему-либо в Интернете, вам нужен статический IP-адрес, который не будет меняться, как динамический IP-адрес, назначенный вам вашим провайдером. Однако есть такие сервисы, как this , которые предоставят вам DNS-имя, указывающее на ваш динамический IP-адрес, а также вам необходимо выполнить переадресацию портов, которая небезопасна.

1 голос
/ 28 мая 2019

Это не имеет ничего общего с вашим кодом.Вам просто нужно направить запросы с вашего внешнего (публичного) IP-адреса на внутренний IP-адрес сервера в вашей сети.Если вы находитесь дома, вам необходимо настроить маршрутизатор.Это часто называют переадресацией порта или сопоставлением портов.Вы также можете использовать динамический DNS-сервис, потому что ваш внешний провайдер будет часто менять большинство внешних ips.

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