Написав в своей оболочке инструкцию, которая отображает все соединения, которые есть у моего компьютера, я понимаю, что некоторые IP-адреса отображаются так: 0.0.0.0 , *:* , [::] , [::1] и даже незнакомец на в некоторых портах порт не указан или все просто ноль ... Если нет порта или просто нет IP, почему компьютер отображает это для меня как соединение?

1 ответ1

3

Я предполагаю, что инструкция - это некая форма команды netstat . (Пожалуйста, включите фактическую команду, однако. Мы не против читателей.)

  1. Соединения с [::1] нормальны: это IPv6-адрес localhost, равный 127.0.0.1 в IPv4. Многие программы используют такие петлевые соединения для связи между своими компонентами.

  2. И [::] и 0.0.0.0 являются "подстановочными" адресами и означают, что адрес еще не известен. Это означает, что линия на самом деле не представляет активное соединение.

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

    Поэтому вместо этого отображается удаленный адрес со всеми нулями ("any", "null" или "unspecified"). (Но многие netstat-подобные программы просто показывают пустое поле.)

  3. Для "прослушивающих" сокетов локальный адрес может быть полностью нулевым по той же причине.

    У компьютера может быть несколько IP-адресов (на самом деле у большинства есть по крайней мере два: адрес обратной связи и адрес локальной сети), а "прослушивающий" сокет может быть настроен на ожидание подключений к любому из этих адресов или только к определенному адресу , (То есть привязан к определенному локальному адресу.)

    Большинство сокетов прослушивания не привязаны к какому-либо конкретному локальному адресу; они примут все соединения. Поскольку локальный адрес не указан, он также отображается как все нули.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .