Поскольку ваша сеть находится за NAT, вы не сможете использовать стандартный PING для каждого устройства. Утилита ping отправляет запросы ICMP, на которые будет отвечать одно устройство при отправке на IP-адрес WAN, обычно это ваш NAT-шлюз (в данном случае, я полагаю, ваш WiFi-маршрутизатор).
Это предполагаемое поведение и один из фундаментальных аспектов безопасности NAT, когда ваши локальные устройства не передаются в глобальную сеть.
Как найти компьютеры, подключенные к сети Wi-Fi, используя только WAN IP?
Есть несколько вариантов (и я уверен, что гораздо больше, чем я буду предлагать здесь). Чтобы получить доступ к устройствам за NAT, вы можете настроить серверы, используя определенные порты. Например, если вы использовали telnet
вне вашей сети, он будет использовать порт по умолчанию 23
, который, как вы обнаружили, ваше устройство, обрабатывающее вашу глобальную сеть, прослушивает и разрешает связь.
Отсюда зависит, каковы ваши фактические требования. Если вы хотите узнать, какие устройства подключены к сети, вы можете настроить сервер на каждом из них, а затем «пинговать» его конкретный порт. Ваш шлюз NAT может затем перенаправлять каждый запрос на правильное устройство локальной сети.
Или вы можете настроить один сервер, к которому вы можете подключиться, через что-то вроде SSH
, что даст вам устройство внутри вашей сети, после чего вы сможете пропинговать каждое устройство, используя его локальный IP-адрес.
Стандартная утилита PING
, так как она использует ICMP, в которой нет понятия портов, не может быть направлена на разные машины за вашим NAT-шлюзом. Вам нужно будет использовать программное обеспечение, которое воспроизводит функциональность PING
, но через такой протокол, как TCP. Затем вы используете это программное обеспечение в таком формате, как:
pingport WANIP:1234
для одной машины
pingport WANIP:1235
для вашей следующей машины
...так далее
Я бы посоветовал продолжить чтение следующего:
NAT - en.wikipedia или simple.wikipedia
Пинг извне локальной сети
TCP/IP