Python не может связать мой внешний / публичный IP-адрес с помощью сокета, выдает ошибку, но при использовании локального IP-адреса ошибка не отображается - PullRequest
0 голосов
/ 08 июня 2019

Вот код, в котором отображается основная ошибка

s.bind(("192.168.1.4", port))    this will work

s.bind(("99.99.999.999", port)) lets say used my public ip than itll throw error

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

port = 6767

try:
    s.bind(("192.168.1.4", port))  #will work fine as local ip is used but 
                                   #when used public ip the error is thrown
except socket.error as e:
    print(str(e)+"aa")

s.listen(2)

[WinError 10049] Запрошенный адрес недопустим в своем контексте

1 Ответ

1 голос
/ 08 июня 2019

Вы можете привязать только IP-адрес, который является локальным для вашей системы.«Общедоступный IP-адрес», который вы видите, скорее всего, не IP-адрес вашего локального компьютера, а IP-адрес вашего маршрутизатора, который обеспечивает подключение к Интернету.

Это означает, что вам нужно будет запустить программу на этом маршрутизаторе, чтобы привязаться к этому IP-адресу.Поскольку это обычно невозможно, общий способ сделать доступ к какой-либо внутренней службе извне - это привязать адрес к вашей локальной сети, а затем добавить правило пересылки к маршрутизатору, которое перенаправляет внешние соединения на ваш внутренний IP-адрес и порт, к которому привязана служба.и слушать.

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