Подтвердить что ты не робот

Соединитель Python привязывается к любому IP-адресу?

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

mySocket = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
mySocket.bind ( ( '', 2727 ) )

"Это для локального хоста, и он работает, если я вручную вводим ip, например 192.168.1.106, однако, как я могу оставить его открытым для всех? или я использую для этого неправильный тип соединения?

4b9b3361

Ответ 1

Если вы хотите привязываться ко всем доступным адресам IPv4, укажите 0.0.0.0 как ваш IP-адрес. Если вы находитесь за маршрутизатором и хотите, чтобы ваш сокет был доступен через Интернет, а не просто в вашей локальной сети, вам нужно настроить правило переадресации портов, чтобы пользователи вне вашей локальной сети могли получить доступ к службе.

Для получения дополнительной информации о 0.0.0.0 см. следующий вопрос ServerFault: https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

Ответ 2

Связывание с '' имеет тот же эффект, что и для '0.0.0.0', облегчает переход на IPv6.

В зависимости от ОС, открытие сокета socket.AF_INET6 прослушивает IPv4 и IPv6.

Ответ 3

Связывание с 0.0.0.0 позволит ему принимать соединения с любого адреса IPv4, который может маршрутизировать его.