Я не могу подключиться к своему серверу Bottle на внешних устройствах

#python #server #bottle

#python #сервер #бутылка

Вопрос:

Я пытаюсь заставить работать сервер Bottle на Python. Вот мой код:

 from bottle import route, run, template
from socket import gethostname, gethostbyname
from time import sleep

ip = str(gethostbyname(gethostname()))

@route('/')
def index():
    return 'Hello World!'

run(host=ip, port=1234)
  

Я запускаю это, и на моем компьютере, где я его запускаю, я перехожу к http://127.0.1.1:1234/ , и появляется мой веб-сайт с Hello World! .
Однако, если я попытаюсь подключиться к нему на своем телефоне или Chromebook моей сестры, он скажет, что веб-сайт отказался подключиться.
Я пытался заменить str(gethostbyname(gethostname())) на '0.0.0.0' и 'localhost' , но ничего не сработало.

Ответ №1:

Избавьтесь от этой строки; в этом нет необходимости:

 ip = str(gethostbyname(gethostname()))
  

Сделайте свою run строку похожей на это:

 run(host='0.0.0.0', port=1234)
  

Адрес 0.0.0.0 означает «прослушивать все адреса».

Наконец, определите сетевой адрес хоста, на котором запущено ваше приложение. Тогда другие устройства в той же сети должны иметь возможность подключаться <that ip address>:1234 . Устройства, находящиеся не в той же сети, смогут подключиться к службе, только если у вас есть общедоступный маршрутизируемый адрес (или если вы договорились о пересылке соответствующего порта с маршрутизатора, у которого есть общедоступный адрес).

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

Комментарии:

1. Хорошо, я попробую это, когда у меня будет возможность!