Могу ли я использовать сокетное соединение для получения соединения с любого IP-адреса, не указанного c IP-адрес? - PullRequest
0 голосов
/ 27 февраля 2020

Я использую сокетное соединение для создания клиент-серверной программы. Код сервера должен ждать подключения с IP-адреса клиента.

server_address.sin_family = AF_INET;
server_address.sin_addr.s_addr = inet_addr("192.168.1.6");  //client ip address

Могу ли я получить соединение с любого IP-адреса, который не указан c IP-адрес 192.168.1.6?

1 Ответ

0 голосов
/ 27 февраля 2020

Указанный вами адрес - это не IP-адрес клиента, а адрес интерфейса вашего собственного хоста, который он будет прослушивать.

Итак, для прослушивания только на локальном хосте вы указываете 127.0. 0,1. Для прослушивания внешнего интерфейса, который может видеть внешний мир, вы можете указать этот адрес.

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

Обратите внимание, что хотя на первый взгляд это может показаться немного сумасшедшим, на самом деле вполне разумно слушать только на локальном хосте. Это позволяет немного «обмануть» безопасность. Вместо того, чтобы пытаться (и, скорее всего, не в состоянии) обеспечить безопасность самостоятельно, внешний пользователь формирует туннель S SH к вашему компьютеру, а затем подключает своего клиента к вашему серверу через этот туннель. Ваш сервер только должен сделать свое дело и оставляет все аутентификации, конфиденциальности и т. Д. c., Для S SH.

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