Использование публичного IP-адреса в сокетах - PullRequest
0 голосов
/ 16 марта 2019

Я новичок в программировании сокетов.Мои сокеты работают с локальным или локальным ip.Но почему я не могу создать сервер сокетов с моим публичным IP?Когда я пытаюсь сделать это в python, он жалуется, что «не может назначить запрошенный адрес».

import socket
s=socket.socket()
host="address"
port=5000
s.bind((host, port))
s.listen(5)
while True:
    c, addr=s.accept()
    result=c.recv(1024)
    print(result.decode('utf-8'))
    c.send("""
  test
""".encode('utf-8'))
    c.close()

Мой IP-адрес, полученный с этого сайта: http://whatismyip.host/

1 Ответ

1 голос
/ 16 марта 2019

Сервис, подобный http://whatismyip.host/, покажет вам публичный адрес вашего маршрутизатора, то есть устройства, подключенного к Интернету.Если вы посмотрите IP вашего настольного компьютера, он, вероятно, покажет что-то вроде 192.168.0.10, где 192.168.0.1 - это адрес вашего роутера, который вы вводите на своем рабочем столе, в качестве «шлюза».

ВашМаршрутизатор напоминает брандмауэр, отделяющий домашнюю сеть от общедоступного Интернета.

Чтобы получать соединения на настольном компьютере, вам необходимо настроить переадресацию портов на маршрутизаторе.Вы по-прежнему будете прослушивать процесс Python на 192.168.0.10 (IP вашего локального компьютера).Или вы можете установить его на 0.0.0.0, что является сокращением для "всех доступных интерфейсов".

Имейте в виду, что ваш публичный IP-адрес, вероятно, нестабилен.

...